# Welcome to Cronos ID

![](/files/aqv3tu2H83GFMSLFsQEI)

Cronos ID is the result of a need for communication and identity infrastructure on Cronos. In web3, users are identified by long and unintuitive address strings; Individuals rely on off-chain applications to communicate, which can be prone to exploits. With an increase in adoption of web3, there is a key need for safe and easy primitives that a mass audience can utilise.

We intend to launch an infrastructure layer that will be utilised by web3 adopters, aiming to bridge both CeFi and DeFi users within Cronos and the broader Defi Ecosystems.


# What is Cronos ID?

Cronos ID is a decentralised **identity and communication layer** built on Cronos. On a broad level, Cronos ID will give users the ability to send and receive information onchain, powered by human-readable identifiers.

To achieve this, Cronos ID is powered by 3 key subprotocols:&#x20;

* Starting with our **Domains**, every user will have a unique onchain identity, allowing you to find friends and exchange crypto with ease&#x20;
* The Notifications service will help the community keep track of key protocol events, alerts, NFT bids and more - gone are the days of manually checking your DApps for bids or collateral factors.&#x20;
* Finally, by leveraging **Messaging**, users and projects will be able to connect and communicate with each other in a safe and verifiable environment.


# Cronos ID Domains

The goal of Cronos ID’s identity layer is to map human-readable names like “Jack.cro” or “Jill.cro” to machine-readable identifiers - such machine-readable identifiers include onchain addresses, metadata, IPFS hashes and content hashes.

This layer allows “Jack” and “Jill” to:&#x20;

* Host their own IPFS websites and NFT galleries&#x20;
* Link users to their bio and info, including twitter profiles, email etc, by visiting their domains&#x20;
* Send and receive cryptocurrency to/from Jack.cro or Jill.cro&#x20;
* Create subdomains for their community to use

Users will no longer have to authenticate and contend with long and complex addresses. Individuals can choose to have their relevant information connected to their identity layer for ecosystem-wide usage.


# Cronos ID Notifications

A web3 enabled notification service has its value deeply rooted in the fact that onchain activities cannot be tracked easily by users. Currently, it requires users to either run their own scripts or to periodically pull information manually. A service like Cronos ID will be increasingly crucial as web3 gains adoption and popularity - the large majority of users will likely be less tech-savvy and more reliant on abstracted technologies like the notification service.

Cronos ID Notification Service will be a sub protocol of Cronos ID that enables users' wallet addresses to receive notifications about onchain events without the need to manually check the relevant DApps.

These notifications may include:&#x20;

* Notifications of governance votes on DAOs / Protocols&#x20;
* Warnings on liquidation events on users’ borrowings&#x20;
* Upcoming expiry of registered domains&#x20;
* New bids on an NFT listed on a platform or marketplace

As DeFi continues to grow, the complexity of managing a wide range of DApps will become more evident. A notification service effectively addresses this by keeping users in sync with onchain activities, reducing the time lag and complexity of handling multiple DApps.


# How Cronos ID Notifications Work?

The Cronos ID notification service is a platform that helps the Dapps/Communities and their users. The Dapps owner can create a notification channel and embed it into their website. Once the end users subscribe to the notification channel, they will be able to view it in the in-Dapp embedded view.

For end-users, access to the Centralized Notification System (CNS) dashboard allows them to peruse available DApps for subscription to notifications.&#x20;


# Partner with Cronos ID Notifications

If your DApp is interested in partnering with us, please fill in this [form](https://airtable.com/appBdVKEFsnO9VH7M/shrHdWFjqh58aGGkV)


# Terms & Conditions

**Cronos ID Notification Service Terms of Use**

Last update: 10th January 2024

These terms of use (“**Terms**”) govern your access to and use of all content, services, tools, materials or other types of content available via the **Cronos ID Notification Service** on <https://cronosid.xyz/> (the “**Site**”, and collectively the “**Services**”).

By accessing or using the Services in any way, including without limitation to visiting the Site, and/or connecting your decentralised wallet (“**Wallet**”) to the Services, you represent that you have read, understood, and agree to be bound by these Terms. If you do not agree to these Terms, then you may not access or use the Content or Services.

1. **Definitions**

“**Applicable Law**” means any law, rule, statute, subordinate legislation, regulation, by-law order, ordinance, protocol, code, guideline, treaty, policy, notice, direction or judicial, arbitral, administrative, ministerial or departmental judgement, award, decree, treaty, directive, or other requirement or guideline published or in force at any time which applies to or is otherwise intended to govern or regulate any person (including all parties to this Terms), property, transaction, activity, event or other matter, including any rule, order, judgement, directive or other requirement or guideline issued by any governmental or regulatory authority.

1. **Eligibility**

We have the sole and absolute discretion to determine access to the Services. By agreeing to these Terms, you represent and warrant that:

* 1. You are at least 18 years of age, or the minimum age required in your jurisdiction of residence to have the necessary legal capacity, right, power and authority to accept these Terms;
  2. You have the full right, power, and authority to agree to these Terms;
  3. You are not impersonating any other person;
  4. You will not use the Services if any Applicable Laws in your country prohibit you from doing so in accordance with these Terms;
  5. You are compliant with all Applicable Laws to which you are subject to; and
  6. You have read, understood and agreed to these Terms or otherwise any other documents we have presented to you on the Site.

1. **The Services**

* 1) The Service allows you to (i) as a channel owner, integrate your decentralised application (“**DApp(s)**”) with the Service to allow users of your DApp to receive notifications and/or; (ii) as a subscriber of a channel, to receive notifications from your chosen DApps.
  2) Channels and subscribers/users interact directly in a peer to peer manner via the Service (for example, notifications are sent directly from each channel to the subscriber), and we are not, under any circumstances, a party or intermediary to that process.
  3) We may in our absolute and sole discretion change, update, amend, remove, or discontinue any or all parts or features of the Site and/or Services at any time without prior notice to you. It is your responsibility to check these Terms periodically for changes. Your continued use of the Site or Services following any such changes will mean that you accept and agree to such changes. We will not be liable if for any reason all or any part of the Site or Service is unavailable at any time or for any period. From time to time, we may restrict access to some parts of Service, or the entire Service, to any users.

1. **Your use of the Service**
   1. Subject to these Terms, we grant you a limited licence to access and use the Services for the sole purpose using the Services for your personal or internal business purposes and solely in accordance with the functionality of the Services.

* 1) You shall not access, use, download or install any software (including without limitation any SDK, API, or API key) that may be made available to you as part of the Service without our permission. Any redistribution of such software is prohibited.
  2) If you are a channel owner, the content of the notifications will be created by you and presented to the subscriber/user of your channel/DApp in a variety of ways including images, data, text, messages, video or audio (collectively, the **"User Content”**). All User Content created by you is solely your responsibility and you must evaluate and bear all risks associated with the use and distribution of any of your User Content. You acknowledge that all User Content is the sole responsibility of the party from whom such User Content originated. That means that you, and other users of the Services, and not us, are responsible for all User Content.
  3) In no circumstances shall the Site or the Services be utilised for distributing User Content relating to: (a) investment products, financial transactions or payment services, (b) gambling, lottery, sweepstakes or contests, (c) racism, (d) violence and weapons, (e) self-harm, (f) nudity, pornography or sexual services, (g) illegal substances, (h) terrorism (i) emergency calling or messaging to any emergency services personnel or public safety answering points or (j) malicious programs, viruses, Trojan horses and worms.
  4) While using the Site and/or the Services, you agree not to:
     1. restrict or inhibit any other user from using the Site or the Services or the User Content, including without limitation, by means of "hacking” or defacing any portion of the Site or Services;
     2. use the Site, the Services or User Content for any unlawful purpose or in any manner not intended by us or as contemplated herein and on the Site or the Services;
     3. engage in rude, unlawful, harassing, vulgar, obscene, hateful, threatening, abusive or otherwise objectionable behaviour;
     4. institute an attack upon any server used in connection with the Site or the Services or any portion thereof or otherwise attempt to disrupt such servers;
     5. express or imply that any statements you make are endorsed by us, without our prior express written consent;
     6. knowingly transmit: (i) any content or information that is unlawful, fraudulent, threatening, abusive, libellous, defamatory, obscene or otherwise objectionable, or infringes our or any third party’s intellectual property or other rights; (ii) any material, non-public information about companies without the authorization to do so; (iii) any trade secret of any third party; or (iv) any advertisements, solicitations, chain letters, pyramid schemes, investment opportunities or other unsolicited commercial communication;
     7. engage in spamming or flooding;
     8. transmit any software or other materials that contain any viruses, worms, trojan horses, defects, date bombs, time bombs or other items of a destructive nature;
     9. modify, adapt, sublicense, translate, reverse engineer, decompile or disassemble all or any portion of the Site or the Services;
     10. remove, alter, conceal any copyright, trademark, patent or other proprietary rights notices contained in the Site or the Services;
     11. link the Site or the Services or any User Content thereon to any third party website or portion thereof;
     12. use any robot, spider, site search/retrieval application or other manual or automatic device or process to retrieve, index, "data mine” or in any way reproduce or circumvent the navigational structure or presentation of the Site or the Services or its contents; or
     13. harvest or collect information about users of the Site or the Services without their express consent.

1. **Limitation of Services / Termination**
   1. We reserve the right, without notice and in our sole discretion, to terminate or suspend your access to or use of the Service and the Site at any time and for any reason but in particular, if we suspect in our sole discretion that: (i) you are using the Service or is suspected to have used the Service for illegal activity; (ii) you have or we suspect that you have engaged in fraudulent activity; and/or (iii) you have or we suspect that you have engaged in activity in violation of these Terms.
   2. We reserve the right at all times to disclose any information as it deems necessary to satisfy any Applicable Law, regulation, legal process or governmental request, or to edit, refuse to post or to remove any information or materials, in whole or in part, at our sole discretion.
   3. We may, but are not obligated to, monitor or review the Services and User Content at any time. Without limiting the foregoing, we shall have the right, in our sole discretion, to remove any of your User Content for any reason (or no reason), including if such User Content violates these Terms or any Applicable Law. Although we do not generally monitor user activity occurring in connection with the Services or User Content, if we become aware of any possible violations by you of any provision of these Terms, we reserve the right to investigate such violations, and we may, at our sole discretion, immediately terminate your license to use the Services, or change, alter or remove your User Content, in whole or in part, without prior notice to you.
2. **Fees and Taxes**
   1. You elect to purchase any Service in connection with which we charge fees (“**Fees**”), you agree that you will pay us all such Fees as set forth at our then-current standard rates. You agree that: (i) all Fees are non-cancellable, non-refundable, and non-recoupable; and (ii) all invoices for Fees are due and payable in $CROID (or an alternative currency or cryptocurrency to be agreed-upon by the parties in writing) immediately, without deduction or setoff. We reserve the right, without notice and in our sole discretion, to amend any Fees at any time and for any reason.
   2. You agree that you are solely responsible for determining what, if any, taxes apply to your transactions on the Site. Neither Cronos ID nor any other Cronos ID affiliated entity is responsible for determining the taxes that may apply to your transactions.
3. **Intellectual Property Rights**
   1. Except with respect to any User Content that you make available, you agree that we and our licensors own all rights, title and interest in and to the Site and the Services, and that all content and other materials contained therein, including, without limitation, the Cronos ID logo, and all designs, text graphics, pictures, information, data, software, and files relating to the Cronos ID Notification Service (the “**Content**”) are the proprietary property of Cronos ID or our affiliates, licensors, or users, as applicable. All rights reserved. You will not remove, alter or obscure any copyright, trademark, service mark or other proprietary rights notices incorporated in or accompanying any Services. You may not copy, imitate or use, in whole or in part, the Content without our prior written permission.
   2. We do not claim ownership of User Content. However, when you register your wallet and/or publish User Content on or in the Services, including without limitation to use the software to initiate or facilitate the transmission of any notification, you represent that you own and/or have, and have all rights necessary to grant to us and do hereby grant to us , a royalty-free, perpetual, irrevocable, worldwide, non-exclusive right (including any moral rights) and license to use, license, reproduce, modify, adapt, publish, translate, create derivative works from, distribute, derive revenue or other remuneration from, and communicate to the public, perform and display User Content (in whole or in part) worldwide and/or to incorporate it in other works in any form, media or technology now known or later developed, for the full term of any worldwide intellectual property right that may exist in User Content.
4. **Interactions with other users**
   1. You are solely responsible for your interactions with other users (whether they be users of the Service and/or subscribers/users of a channel) and any other parties with whom you interact; provided, however, that we reserve the right, but have no obligation, to intercede in such disputes. You agree that we will not be responsible for any liability incurred as the result of such interactions.
5. **Links to third party sites**
   1. The Services provide, or third parties may provide, links to other World Wide Web or accessible sites, applications or resources. Because Cronos ID has no control over such sites, applications and resources, you acknowledge and agree that Cronos ID is not responsible for the availability of such external sites, applications or resources, and does not endorse and is not responsible or liable for any content, advertising, products or other materials on or available from such sites or resources. You further acknowledge and agree that Cronos ID shall not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with use of or reliance on any such content, goods or services available on or through any such site or resource.

* 1) We reserve the right and without liability to you to do the following at any time in our sole discretion and without notice to you: update, change, remove, cancel, suspend, disable or restrict access to or discontinue the Services, User Content or change any features, component or content of the aforementioned or; decline, suspend, cancel, reverse, void or partially execute any instruction; or reverse, cancel, clawback, change any terms or refuse to honour any payment or rewards (if applicable).

1. **Limitation of Liability**

TO THE FULLEST EXTENT PERMITTED BY LAW, IN NO EVENT WILL WE BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY LOST PROFIT OR ANY INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL OR PUNITIVE DAMAGES ARISING FROM THESE TERMS, THE SITE, THE SERVICE, OR THIRD PARTY SITES AND PRODUCTS, OR FOR ANY DAMAGES RELATED TO LOSS OF REVENUE, LOSS OF PROFITS, LOSS OF BUSINESS OR ANTICIPATED SAVINGS, LOSS OF USE, LOSS OF GOODWILL, OR LOSS OF DATA, AND WHETHER CAUSED BY TORT (INCLUDING NEGLIGENCE), BREACH OF CONTRACT, OR OTHERWISE, EVEN IF FORESEEABLE AND EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. ACCESS TO, AND USE OF THE SITE, SERVICE OR THIRD-PARTY SITES AND PRODUCTS ARE AT YOUR OWN DISCRETION AND RISK, AND YOU WILL BE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR LOSS OF DATA RESULTING THEREFROM. NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, IN NO EVENT SHALL OUR MAXIMUM AGGREGATE LIABILITY ARISING OUT OF OR IN ANY WAY RELATED TO THESE TERMS, THE ACCESS AND USE OF THE SITE, THE SERVICE OR ANY PRODUCT OR SERVICES PURCHASES ON THE SITE (IF APPLICABLE) EXCEED US$100. THE FOREGOING LIMITATIONS OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR PERSONAL INJURY CAUSED BY OUR NEGLIGENCE OR ANY INJURY CAUSED BY OUR FRAUD OR FRAUDULENT MISREPRESENTATION.

1. **Indemnification**

To the fullest extent permitted by Applicable Law, you agree to indemnify, defend and hold harmless us, our affiliates and past, present and future employees, officers, directors, contractor, third-party, equity holders, suppliers, vendors, service providers, parent companies, subsidiaries, affiliates, agents, representatives, predecessors, successors and assigns (individually and collectively the “**Cronos ID Parties**”), from and against all actual or alleged third party claims, damages, awards, judgments, losses, liabilities, obligations, penalties, interest, fees, expenses (including, without limitation, court costs, costs of settlement and costs of pursuing indemnification and insurance), of every kind and nature whatsoever, whether known or unknown, foreseen or unforeseen, matured or unmatured, or suspected or unsuspected, in law or equity, whether in tort, contract or otherwise (collectively, “**Claims**”), including, but not limited to, damages to property or personal injury, that are caused by, arise out of or are related to (i) your use or misuse of the Site, Services or User Content, (ii) your breach of these Terms, and (iii) your breach or violation of the rights of a third party, including another user or third party service provider. You agree to promptly notify us of any Claims and cooperate with Cronos ID Parties in defending such Claims. You further agree that Cronos ID Parties shall have control of the defence or settlement of any Claims. THIS INDEMNITY IS IN ADDITION TO, AND NOT IN LIEU OF, ANY OTHER INDEMNITIES THAT MAY BE SET FORTH IN A WRITTEN AGREEMENT BETWEEN YOU AND US.

1. **Miscellaneous**
   1. **Amendment and Variation.** These Terms may from time to time be updated or amended. Such updates and/or amendments will take effect immediately unless otherwise indicated. We will post any such updates on the Site. You should regularly check the Site to inform yourself of any such changes. In addition, we may at any time change, add or remove any feature or functionality of the Site without prior notice. By continuing to use the Services and/or the Site after any such changes have taken effect, you are indicating your acceptance of the updated or amended Terms as well as your acceptance of the updated Site. If you do not wish to be bound by any changes or amendments to these Terms then you should stop using the Services and Site immediately.
   2. **Transfer, Assignment or Delegation**. These Terms, and any rights and obligations and licences granted hereunder, are limited, revocable, non-exclusive and personal to you and therefore may not be transferred, assigned or delegated by you to any third-party without our prior written consent, but may be transferred, assigned or delegated by us without notice and restriction, or to any successor in interest of any business associated with the Cronos ID Notification Service. Any attempted transfer or assignment in violation hereof shall be null and void.
   3. **Severability.** If any provision of these Terms shall be found by any court or administrative body of competent jurisdiction to be invalid or unenforceable, the invalidity or unenforceability of such provision shall not affect the other provisions of these Terms and all provisions not affected by such invalidity or unenforceability shall remain in full force and effect. Such provision will be changed and interpreted to accomplish the objectives of the provision to the greatest extent possible under any Applicable Laws.
   4. **Entire Agreement / Translation.** These Terms (together with our Protected Domains Policy, Community Guidelines and any other documents relevant to our Service) constitute the entire agreement between the parties regarding its subject matter and supersedes and invalidates all other prior representations, arrangements, understandings, and agreements relating to the same subject matter, (whether oral or in writing, express or implied). Each party acknowledges that in agreeing to these Terms it does not rely on any statement, representation, warranty, or understanding other than those expressly set out in these Terms. These Terms are concluded in the English language and all communications including any notices or information being transmitted shall be in English. In the event that these Terms or any part of it is translated (for any proceedings, for your convenience or otherwise) into any other language, the English language text of these Terms shall prevail.
   5. **Waiver.** You understand and agree that if you have a dispute with one or more users (whether they be users of the Services or subscribers/users of a channel), YOU RELEASE US FROM CLAIMS, DEMANDS, AND DAMAGES OF EVERY KIND AND NATURE, KNOWN AND UNKNOWN, ARISING OUT OF OR IN ANY WAY CONNECTED WITH SUCH DISPUTES. IN ENTERING INTO THIS RELEASE YOU EXPRESSLY WAIVE ANY PROTECTIONS (WHETHER STATUTORY OR OTHERWISE) THAT WOULD OTHERWISE LIMIT THE COVERAGE OF THIS RELEASE TO INCLUDE THOSE CLAIMS WHICH YOU MAY KNOW OR SUSPECT TO EXIST IN YOUR FAVOUR AT THE TIME OF AGREEING TO THIS RELEASE. Notwithstanding the foregoing, these Terms shall not be waived in whole or in part except where agreed by the parties in writing. The delay of enforcement or the nonenforcement of any of the terms of these Terms by any party shall not be construed as a waiver of any of the other rights of that party arising out of the breach or any subsequent breach of any of these Terms and no right, power or remedy conferred upon or reserved for any party in these Terms is exclusive of any other right, power or remedy available to that party and each such right, power or remedy shall be cumulative.
   6. **Third Party Rights.** Other than the entities within the Cronos ID group, a person who is not a party to these Terms has no right to enforce any of these Terms.
   7. **Survival.** All provisions of Terms which by their nature should survive termination shall survive termination, including, without limitation, section 5 (Limitation of Services/Termination/Account Closure), section 6 (Fees and Taxes), section 7 (Intellectual Property Rights), section 8 (Interaction with other users), section 11 (Disclaimers), section 12 (Limitation of Liability), section 13 (Indemnification), this section 14 (Miscellaneous), and section 15 (Governing Law and Jurisdiction).
2. **Governing Law and Jurisdiction**

These Terms are governed by and shall be construed in accordance with the laws of Hong Kong without regard to any choice or conflict of laws rules. Any dispute, controversy or claim, whether contractual or non contractual, arising out of or in connection with these Terms, or the breach, termination or invalidity thereof, or any other issue which shall arise in virtue of these Terms, shall be referred to and finally settled by arbitration administered by the Hong Kong International Arbitration Centre (“**HKIAC**”) under the HKIAC Administered Arbitration Rules in force when the Notice of Arbitration is submitted. The law of this arbitration clause shall be Hong Kong law. The seat of arbitration shall be in Hong Kong. The number of arbitrators shall be one. The arbitration proceedings shall be conducted in the English language.


# Cronos ID Messaging

In current ecosystems, there is a lack of a proper communication channel for users to reach out to each other or connect with teams in a safe and secure manner. Whilst traditional web2 communication mediums serve the purpose of providing a platform to convey a message, the safety of said platforms in the web3 context are often questionable.

Users typically bear the risks of joining fake channels or phishing scams, which can be extremely risky for an inexperienced user with a less comprehensive understanding of online security. There is generally no concrete way to verify the individuals that you are talking to or those behind the wallet addresses you are transacting with.

Cronos ID Messaging Service is a sub protocol of Cronos ID that enables users to reach out to other individuals via wallet addresses or domain names, providing both parties greater assurance of the identity of the person they are communicating with.

Immediate value can be found in:&#x20;

* Negotiations for the sales and purchases of NFTs - prospective buyers currently do not have proper verified channels to reach out to NFT owners for negotiations.&#x20;
* Community building - where users can reach out to specific wallets and project teams to talk to the right people.

Building upon the base of verified chats on top of blockchain infrastructure, there is further potential to develop a social component of communication services.


# Core Utility Modules

## Domain Subscription Module&#x20;

Users may utilize this module to register or extend their ownership over specific domains&#x20;

* Users will pay in $CRO or $CROID and may receive discounts based on the durations of their domain registrations&#x20;

## Rewards Pool (Coming Soon)&#x20;

Cronos ID domain holders can deposit their $CROID into maturity vaults to earn $CROID rewards

* Users can choose between a 1-month, 9-months, 24-months, and 48-months maturity vaults to lock their $CROID


# Tokenomics

## What is $CROID?&#x20;

$CROID is Cronos ID’s native and governance token to be utilised in Cronos ID’s broader ecosystem.

Within Cronos ID Domains, users will be able to utilise $CROID tokens to purchase 3 and 4 character names at a discounted price

### Revenue Share&#x20;

Cronos ID aims to provide a sustainable share of protocol revenue to our token holders:

* 40% shared to Reward Pool stakers&#x20;
* 40% allocated to the Ecosystem Treasury&#x20;
* 20% used to buyback and burn $CROID

## $CROID Allocation

A total of 1,000,000,000 (1 billion) $CROID tokens will be allocated as follows:

<figure><img src="/files/lVDlVMC5BvXOyB72LR0X" alt=""><figcaption></figcaption></figure>


# Domains Pricing Model

<figure><img src="/files/oYCPhz83Smm1bXVTHxGF" alt=""><figcaption></figcaption></figure>


# Roadmap

Built to be a key infrastructure layer, Cronos ID is set apart from other similar protocols. We are building an entire suite of products and services for our users to be integrated with the broader Cronos ecosystem.&#x20;

Our roadmap can be split into 3 phases:

### Phase 1 - Domain Services

Key Milestones:

* Domain Services launch and sales
* Integrations with explorers, wallets and key Cronos protocols
* $CROID staking module and token launch

In this phase, we will focus on our Domain service, allowing users to buy, mint, and bind their domain name to their wallet addresses. By owning a unique onchain identity, users can contact other users and exchange crypto with ease.

Apart from integration with block explorers and various wallets to enhance transparency and accessibility to our protocol, we will also be partnering with leading protocols in the Cronos ecosystem to drive adoption of our protocol.

We will be launching our own token $CROID as well. More details to come regarding the token circulation and utilities when it's closer to the Token Generation Event.

### Phase 2 - Notification Services

Key Milestones:

* Notification Services launch&#x20;
* Integration with distribution channels and key Cronos protocols
* Developer SDKs to integrate with Cronos ID framework

In Phase 2, we will be introducing Notification services, which is another pillar of Cronos ID.&#x20;

Using this feature, protocols can improve communications with the community by keeping them updated of the key protocols events, alerts, NFT bids and more directly within the Cronos ecosystem! This helps users skip the manual checking of individual DApps and their respective social media channels for bids or collateral factors.

Similar to Phase 1, we will also be having integration with various distribution channels and key Cronos protocols to empower them with the communication capabilities, while bolstering the foundation and following of Cronos ID.

Developer SDKs will be integrated with our framework, so developers can capitalise on our protocol as well.

### Phase 3 - Messaging Services

Key Milestones:

* Messaging Services launch
* Enhancement of Notification features
  * Smart messaging features
  * Broadcasting services
  * Additional notification channels

Once the Domain and Notification Services have been launched, we will be introducing Messaging Service in Phase 3, which allows users and projects to connect and communicate with each other in a safe and verifiable environment.

We also want to enrich our Notification Service by introducing smart messaging features and broadcasting services to further enhance the capabilities of our products.

Down the road, there will be further messaging and notification features, together with more integration and partnerships with other protocols.&#x20;

With our infrastructure, Cronos ID enables **self-sovereign identity for Cronos users and facilitates easy cross-communication between protocols**. This builds up the strong network effect within the ecosystem to onboard the next billion users onto Cronos.


# Release Notes

## Releases on Mar 30, 2023

**What’s new 🚀**&#x20;

**🧒 Sub-domain**

If you own doe.cro, you can now create john.doe.cro and assign wallet addresses to manage the sub-domain.

You only have to pay the gas fee involved 😎&#x20;

**What can you do with sub-domains?**

👛 **Organize your wallets**: Create sub-domains like coldwallet.johndoe.cro and nft.johndoe.cro for easier management

🪪 **Manage your community**: Create verified identities under your organization for your team or even community members

Learn more about it [here](/user-guides/cronos-id-domains/sub-domain).

## Releases on Feb 23, 2023

**What’s new 🚀**&#x20;

**🔃 Domain Renewal**

Looking to extend your domain subscription and secure your web3 identity?

You can now renew your domain subscription on our website! &#x20;

Learn more about it with our [user guide](/user-guides/cronos-id-domains/renewing-domain) and [FAQ](/user-guides/usdcroid-staking-vaults/faq).

## **Releases on Jan 19, 2023**

**What’s new 🚀**&#x20;

**📱Share your Cronos ID domain to social media**

Time to flex your CROID with the community! You can now share the domains you own to your Twitter, Telegram, and Facebook accounts to showcase your web3 identity.

It’s a great way to get your friends and family to purchase a CROID as well - so we can all skip the long and complex wallet addresses when we make transactions 🤓

Try it under your domain profile or upon searching a domain.

**🪪 Enhanced profile page**

This new profile page will make it easier to get around Cronos ID. One page to do it all:

* Update your Default Domain
* View your transaction history on Cronoscan
* Check your $CRO and $CROID balances on connected wallet
* Import $CROID token to track balance on your wallet

Click on your wallet icon to see this new profile page.

**🔃 Real-time $CROID price and link to purchase**

Available right next to your wallet icon.

## **Releases on Dec 29, 2022**

**Bug Fixes 🛠️**

* Domain > Crypto: Edit multiple fields and save the changes in one go via one transaction 👉 saves you time and gas fees &#x20;

**What’s new 🚀**

* Connect to our website using WalletConnect
* Warning message to remind users to clear personal information before transferring the domain to another user
* Purchase $CROID on [Vault Page](https://cronosid.xyz/vaults/) via our DEX Partner VVS Finance
* Send/receive NFTs on [Crypto.com](http://crypto.com/) Onchain using Cronos ID domains (detailed guide [here](/using-cronos-id-on-crypto.com-onchain/for-crypto.com-onchain-mobile-app-users/sending-nft))


# Our Partners

Here you can find our partnering protocols and the integration they've done with Cronos ID.

<table><thead><tr><th width="222.5">Partners</th><th>How to use your domains</th></tr></thead><tbody><tr><td><a href="https://help.crypto.com/en/collections/2221157-crypto-com-onchain">Crypto.com Onchain</a></td><td><ul><li>Set domain as your wallet name</li><li>Send/receive funds using domain</li><li>Send/receive NFTs using domain</li></ul></td></tr><tr><td><a href="https://cronoscan.com/">Cronoscan</a></td><td><ul><li>Search domain to access the address's transaction history <a href="https://cronoscan.com/">here</a></li><li>Browse the latest domain registrations <a href="https://cronoscan.com/name-lookup">here</a> </li></ul></td></tr><tr><td><a href="https://vvs.finance/">VVS Finance</a></td><td><ul><li>Domain display after wallet connection</li></ul></td></tr><tr><td><a href="https://tectonic.finance/markets/">Tectonic Finance</a></td><td><ul><li>Domain display after wallet connection</li></ul></td></tr><tr><td><a href="https://minted.network/">Minted</a></td><td><ul><li>Domain display after wallet connection</li></ul></td></tr><tr><td><a href="https://ferroprotocol.com/">Ferro Protocol</a></td><td><ul><li>Domain display after wallet connection</li></ul></td></tr><tr><td><a href="https://veno.finance/">Veno Finance</a></td><td><ul><li>Domain display after wallet connection</li></ul></td></tr><tr><td><a href="https://fulcrom.finance/">Fulcrom Finance</a></td><td><ul><li>Domain display after wallet connection</li><li>Domain display in trading competition leaderboard</li></ul></td></tr><tr><td>Argo Finance - <a href="https://hub.argofinance.money/">Argonauts Hub</a></td><td><ul><li>Domain display in your argonaut profile</li></ul></td></tr><tr><td><a href="https://app.withmantra.com/market?chain_id=25">Mantra Protocol</a></td><td><ul><li>Domain display in Cronos lending pools</li></ul></td></tr></tbody></table>

If you want to integrate with us, please refer to our [Domain Integration Guide](/developers-resources/domain-integration) and drop us a message on our [Discord server](https://discord.com/invite/FeFu22ny6A) if you have any questions!


# Get Involved

## Marketing Collaboration

If you're interested in partnering with us for marketing campaigns, please fill in the form below with the details of your partnership request:

<https://airtable.com/shrK1wQgvjSlipBKg>

## Domain Integration

Please refer to our[ Domain Integration Guide](/developers-resources/domain-integration). Drop us a message on our [Discord server](https://discord.com/invite/FeFu22ny6A) if you have any questions.

## Our Channels

* [Twitter](https://twitter.com/cronos_identity)
* [Discord](https://discord.com/invite/FeFu22ny6A)
* [Medium](https://medium.com/@cronos_identity)


# Getting Started

Here is a checklist for you to get started on Cronos ID!

1. Create a crypto wallet if you haven't already
2. [Bridge your funds over to Cronos](/user-guides/getting-started/bridging-funds-to-cronos)
3. [Connect your wallet to our platform](/user-guides/getting-started/connecting-wallet)
4. [Check domain availability](/user-guides/cronos-id-domains/checking-domain-availability)&#x20;
5. [Mint your domain](/user-guides/cronos-id-domains/minting-domain)
6. [Edit the profile of your domain](/user-guides/cronos-id-domains/managing-domain-profile/editing-domain-profile)
7. Join us on [Discord](https://discord.com/invite/FeFu22ny6A) and [Twitter](https://twitter.com/cronos_identity) to stay updated!


# Tokens Needed

Cronos ID is operated on the Cronos blockchain. You will need two types of tokens to interact with our platform:

* **$CRO tokens**
  * $CRO tokens are needed pay transaction fees on Cronos ID and other Cronos applications
  * They can also be used to pay for our domain subscription
* **$CROID tokens**

  * $CROID tokens are Cronos ID's native tokens and they are our main rewards/incentive tokens
  * Users can also pay for our domain subscription using $CROID


# Bridging Funds to Cronos

Cronos ID is part of the Cronos ecosystem. You need to bridge your funds to the Cronos blockchain before you can start our protocol.

### From the Crypto.com App and Exchange Platforms <a href="#from-the-crypto.com-app-and-exchange-platforms" id="from-the-crypto.com-app-and-exchange-platforms"></a>

Being a Cronos Labs incubatee, we have received tremendous support from the Cronos family and the Crypto.com ecosystem. If you are part of the CRO fam, these are the ways you can bridge your funds to Cronos:

* For Crypto.com App users \[[Guide](https://cronos.crypto.org/docs/bridge/cdcapp.html#transfer-assets-using-crypto-com-app)]
* For Crypto.com Exchange users \[[Guide](https://cronos.crypto.org/docs/bridge/cdcex.html#transfer-assets-using-crypto-com-exchange)]

### From the Cosmos Ecosystem <a href="#from-the-cosmos-ecosystem" id="from-the-cosmos-ecosystem"></a>

The following leverage [IBC protocol](https://ibcprotocol.org/) which is the battle-tested Cosmos inter-chain. You can convert your Cosmos assets into CRO tokens onto Cronos POS, then bridge them over to Cronos at no cost.

* **If you're using wallet via Chrome extension**

  * Use Web-based [Cronos Bridge](https://cronos.crypto.org/) \[[Guide](https://cronos.crypto.org/docs/bridge/webapp.html)]
  * They support [Crypto.com Onchain](https://help.crypto.com/en/collections/2221157-crypto-com-onchain), [Keplr](https://www.keplr.app/), and [Metamask](https://metamask.io/) extension

  ​
* **If you're using mobile device**

  * For **Metamask Mobile App** users: Go to Metakmask Mobile App > [Cronos Bridge](https://cronos.crypto.org/bridge/)​
  * For **Crypto.com Onchain** users: Go to Crypto.com Onchain App > A bridge will be launched right in the app \[[Guide](https://cronos.org/docs/bridge/other_chain.html#via-crypto-com-defi-wallet)]

  ​
* **If you're using Crypto.com Desktop Wallet**
  * Go to Crypto.com Desktop Wallet App > A bridge will be launched right in the app \[[Guide](https://cronos.org/docs/bridge/other_chain.html#via-crypto-com-defi-desktop-wallet)]


# Connecting Wallet

Cronos ID is a decentralised application, which requires a non-custodial crypto wallet to interact with. A crypto wallet allows you to manage your assets and perform transactions with peers and protocols with your approval.

You will will need a non-custodial Crypto Wallet and connect it to our platform before you can start using Cronos ID.&#x20;

Cronos ID now supports these wallets in both web and mobile browsers:

* ​[Crypto.com Onchain](https://help.crypto.com/en/collections/2221157-crypto-com-onchain)​
* ​[Metamask](https://cronos.org/docs/getting-started/metamask.html)​

We will integrate more wallets in the future if the needs arise. Stay tuned and drop us a message on [Discord](https://discord.gg/FeFu22ny6A) if you have any feedback!


# Cronos ID Domains

<figure><img src="/files/qAB11WmXTFRSq8sjMcQ3" alt=""><figcaption></figcaption></figure>

\>=5 characters .cro Domains are now available for minting!

Get your personalised domain now to replace the long and complex wallet address. The .cro domain allows you to:

1. Send and receive cryptocurrency to and from your domain
2. Create subdomains for the community to use
3. Direct other users to your bio and info via domain profile, including Twitter, email and more!

Read on to find out how to mint your own domain.


# Checking domain availability

1\. Go to our homepage. Enter the desired domain name in the search bar and click "Search"

Notes:

* We only accept the following:&#x20;
  * Characters a-z&#x20;
  * Numerical numbers 0-9&#x20;
  * Dash symbol "-"&#x20;
  * Emojis, e.g. 🚀&#x20;
  * East Asian characters, European characters, and other characters supported in UTF-8 character set
* Domain names should be at least 3 characters long

![](/files/JDTBTNHG4cDprAgqHAjp)

2a. If the domain name is <mark style="background-color:green;">**available**</mark>, you will see the message below and you can proceed with buying the domain name directly.

![](/files/UStahKHVtb74MpL6beNo)

2b. If the domain name is <mark style="background-color:red;">**taken**</mark>, you will see the message below.&#x20;

You can see the profile of the domain name by clicking "See Profile"

You may also check whether the domain is available for purchase on Minted - our NFT marketplace partner in the Cronos ecosystem - by clicking "Explore Domains on Minted"

![](/files/CIeCxFDLzRxby90derBx)

2c. If the message shows <mark style="color:red;background-color:red;">**protected**</mark>, it means that the desired domain name falls under prominent names and brands that are protected from public minting. You may still check the domain profile by clicking "See Profile"

![](/files/9eIcZVpxkysMBG93x4VS)

**Note:**

Emojis with FE0F unicode may experience display issue, so it’s recommended to

1. Double check your domain using the search bar
2. If there’s display issue with the emoji chosen, refrain from minting the domain with that emoji


# Checking domain user profile

1\. Go to our homepage. Enter the domain name in the search bar and click "Search"

![](/files/XA8lWsWqe3978uO9r1BZ)

2\. Click "See Profile". You will be able to check the profile of domain names that are already taken or protected from public minting.

![](/files/vMiGgrre72C1GYThGfMz)

3\. Under "Profile", you can see the details of this domain name, such as the expiration date and associated social media links.

Under "Crypto", you can see the associated cryptocurrency wallet address that the domain owner uses to receive payment.

![](/files/lAHEaIA6CySTou710iFd)


# Minting domain

**Step 1.** Go to our homepage. Enter the desired domain name and click "Search"

![](/files/HvFSOCly1uM6an8cSIhZ)

**Step 2.** After confirming the availability, click "Buy Now" to proceed.

Notes:

* We only accept the following:&#x20;
  * Characters a-z&#x20;
  * Numerical numbers 0-9&#x20;
  * Dash symbol "-"&#x20;
  * Emojis, e.g. 🚀&#x20;
  * East Asian characters, European characters, and other characters supported in UTF-8 character set
* Domain names should be at least 3 characters long
* Emojis with FE0F unicode may experience display issue, so it’s recommended to
  * 1\) Double check your domain using the search bar
  * 2\) If there’s display issue with the emoji chosen, refrain from minting the domain with that emoji

![](/files/m4SNkCsDHv3VDycYV4Iu)

**Step 3.** \
(a) Select the registration period you wish to sign up for. \
(b) Check the cost of registration and estimated gas fee\
(c) Check the checkbox if you want to set the domain as a Default Domain. (Read more about Default Domain [here](/user-guides/cronos-id-domains/setting-default-domain))\
(d) Click "Register" to proceed.

![](/files/4cLeHLdhoYz1pa123y4D)

**Step 4.** Wait for our final check of domain availability.

![](/files/nr9qDUQfuMkvvrHX3Fa2)

**Step 5.** Check your wallet pop-up for transaction approval request. Confirm the transaction details and approve on your wallet.

![](/files/l4QnUC8yTFCr9M0neJkM)

**Step 6.** Once the transaction has been approved, minting of the domain will begin. You can see the status by clicking "Track Progress"

![](/files/OMEBX44rv8CsmLLpxu1G)

**Step 7.** Congrats! You have successfully minted a new domain. You can now manage the profile of your domain by clicking "Manage Domain". If you wish you re-sell the domain on the NFT marketplace, click "Sell Domain on Minted".

![](/files/ikQE94LzcfMLMldLXGWJ)


# Managing domain profile

1\. Go to our homepage and click "My Domains" to access the domains you own

![](/files/0RS27RhkLbPZKlPXjdUs)

2\. Select the domain profile you wish to edit and click "Manage"

![](/files/SlpgxTOPXOJuPBGAJIVn)


# Editing domain profile

Go to "Profile" and enter the social media accounts that you wish to link to your domain.

![](/files/ZEqPXWwH6o9vXVertzcO)


# Adding cryptocurrency addresses

Go to "Crypto" and enter the cryptocurrency addresses to receive payment using your domain.

![](/files/qPQ3Dvmpvl3OPj4NxR8g)


# Transferring your domain

If you wish to transfer the ownership of your domain to another user, follow the steps below.

**Step 1.** Go to "My Domains". Next to the domain you want to transfer, click "Manage".

<figure><img src="/files/0z8f5PQBkZprG1tSNFvX" alt=""><figcaption></figcaption></figure>

**Step 2.** Go to "Transfer". Enter the recipient address and click "Transfer Domain".

*Please note that this process is irreversible and will result in the loss of access to your domain.*

<figure><img src="/files/XAjkcoRy2icdCUiWYQng" alt=""><figcaption></figcaption></figure>

**Step 3.** Select the preferred transfer option.

**(a) Proceed Without Changes:**&#x20;

* All the information associated with your domain (i.e. social media links and cryptocurrency addresses under your Domain Profile) will be transferred with the domain to the recipient.
* You will need to approve and pay for the gas fee of the transfer only.

**(b) Clear Data and Proceed:**

* All the information associated with your domain will be cleared before transferring the domain to the recipient.
* You will need to approve and pay for the gas fee of (1) the data removal and (2) the transfer.

<figure><img src="/files/rvb3CLXOkBCGIn6rEBR9" alt=""><figcaption></figcaption></figure>

**Step 4.** Confirm the transaction approvals on your wallet. Once confirmed, you have successfully transferred the domain to the recipient address.


# Adding domains to "My Favourite"

1 Go to our homepage. Enter the domain name in the search bar and click "Search"

![](/files/Npdrv2opcxSmpoPtJlJM)

2\. Click the heart-shaped icon to add the domain name to "Favourites". You can add domains to  "Favourites" regardless of whether they are available or taken.

![](/files/Snolq0a51ZskBBJH48wP)

3\. Click "Favourites" on the top bar to check the list of domains you have added.

Click "Buy Now" if you wish to mint the domain available.

Click "Contact Owner" if you wish to reach out to the owner of a taken domain.

Click the heart-shaped icon if you wish to remove the domain from the "Favourites" list.

![](/files/5VQEZEAuR6NgF5g5ABp6)


# Claiming domains from direct transfer/NFT marketplace

Apart from minting a domain yourself, you may also receive it via direct transfer from another user, or purchase it from our partner NFT marketplace Minted.

You have to claim it under “My Domains” before you can manage the Domain Profile or set it as Default Domain.&#x20;

## Step-by-step guide

**Step 1.** Go to Cronos ID homepage and click “My Domains”.

<figure><img src="/files/Qvo5q4e05rTDyz2Iu0C6" alt=""><figcaption></figcaption></figure>

**Step 2.** \
(a) Under “Unclaimed Domains”, click “Claim”. \
(b) Gas fee is required for this action. Confirm the transaction approval on your wallet. Once confirmed, you have successfully claimed the domain under your wallet address.

<figure><img src="/files/Vyl16QKUQUTrVTjRQTZ7" alt=""><figcaption></figcaption></figure>

**Step 3.** In the pop-up bar, click “Update Now” to update the wallet addresses associated with the wallet.

<figure><img src="/files/jfvlpuvEQ9T5DhPqMp3F" alt=""><figcaption></figcaption></figure>

**Step 4.** If you have claimed multiple domains, select the one you want to update and click “Continue” to proceed.<br>

<figure><img src="/files/ywmFuxtlKVULuaSYROmN" alt=""><figcaption></figcaption></figure>

**Step 5.** Input the wallet addresses you would like to associate with the domain. Click “Save Changes” to proceed.

<figure><img src="/files/f3CEJvEvm5jIssbniAiY" alt=""><figcaption></figcaption></figure>

**Step 6.** Gas fee is required for this action. Confirm the transaction approval on your wallet. Once confirmed, the wallet addresses associated with your domain will be updated.


# Setting Default Domain

**Default domain** is the primary domain to be used across the DApps that have integrated with us, if you own more than one domain. This will be the default domain to be shown in replacement of your wallet addresses on these DApps, or when users search your wallet address to send you funds on Crypto.com Onchain.

Setting default domains doesn’t affect the mapping between the other domains you own and the associated wallet address. Please make sure that the addresses in the Domain Profile of your domains are correct and updated. Learn about updating Domain Profile [here](/user-guides/cronos-id-domains/managing-domain-profile/adding-cryptocurrency-addresses).

## Step-by-step guide

**Step 1.** Go to Cronos ID homepage and click “My Domains”.

<figure><img src="/files/BVHUmql0Qmt7arFWua4n" alt=""><figcaption></figcaption></figure>

**Step 2.** Under “Domains” and next to “My Default Domain”, click “Change”.

<figure><img src="/files/XJdpLmz99u7RhHk4lL29" alt=""><figcaption></figcaption></figure>

**Step 3.** Select the domain you want to set as default domain. Click “Confirm and next” to proceed.

<figure><img src="/files/a9c3rzK6ga0E1iKbcL3s" alt=""><figcaption></figcaption></figure>

**Step 4.** Gas fee is required for this action. Confirm the transaction approval on your wallet. Once confirmed, your default domain will be updated.<br>


# Renewing Domain

**Step 1.** Go to Cronos ID homepage and click “My Domains”.

<figure><img src="/files/mfWyXGWNQVCgwK8cktqf" alt=""><figcaption></figcaption></figure>

**Step 2.** Select the domain you wish to extend subscription for and click “Manage”.

<figure><img src="/files/EbUsGbCEJk3y5TQoyErv" alt=""><figcaption></figcaption></figure>

**Step 3.** Under “Expiration Date”, click “Extend”.

<figure><img src="/files/inDo5BrIhJK1xSvi4LgM" alt=""><figcaption></figcaption></figure>

**Step 4.** Select the desired registration period. Click “Confirm and Pay” to proceed.

<figure><img src="/files/Ed0wZsxifMuUwik5msAU" alt=""><figcaption></figcaption></figure>

**Step 5.** Confirm the transaction approval on your wallet and wait for the final confirmation.

<figure><img src="/files/1UIG0y1QwrDaxb69Zi5v" alt=""><figcaption></figcaption></figure>

**Step 6.** You have now successfully extended the domain!

<figure><img src="/files/nWGpG0ude7axrzYSFshH" alt=""><figcaption></figcaption></figure>


# Sub-domain

## Introducing sub-domain

With this new feature, by owning a Cronos ID domain (e.g. johndoe.cro), you can now create sub-domains (e.g. 1.johndoe.cro) under the parent domain!

To create a sub-domain, the owner of the parent domain just needs to assign the controller wallet address and pay the transaction fee involved.

## What is Controller?

**Controller** is the account that can manage the domain, e.g. editing domain profile, creating sub-domains. **Registrant** is the account that owns the NFT token of the domain. They can set the controller address and transfer domain ownership to another address.

For example, if you registered for johndoe.cro, you will be both the Registrant and Controller, with full control over the domain. If you create a sub-domain 1.johndoe.cro, you can assign either yourself or someone else as the controller of the domain.

## What are sub-domains for?

Sub-domains can benefit both individual users and organizations. Here are some examples:

1. Organize your wallets:&#x20;

   \
   You can create sub-domains like coldwallet.johndoe.cro and nft.johndoe.cro , then link to the wallet addresses serving different purposes for easier management.<br>
2. Identity for your staff or community:\
   \
   Sub-domains will help you create verified identities under your organization for your team or even community members.

<br>

To learn more about how to create a sub-domain, click here.

\
\ <br>


# Creating sub-domain

Step 1. Go to Cronos ID homepage and click “My Domains”.

<figure><img src="/files/kOP7dWiJ5y09bc6D0EKA" alt=""><figcaption></figcaption></figure>

**Step 2.** Next to the parent domain that you want to create sub-domain for, click “Manage”.

<figure><img src="/files/7lQsUqdld64gLzSOjqKv" alt=""><figcaption></figcaption></figure>

**Step 3.**&#x20;

(a) If this is your first time creating a sub-domain, click “Approve Sub-domain in wallet” and confirm the transaction approval on your wallet.

<figure><img src="/files/jZsvjG9uQtInZSlHHIP4" alt=""><figcaption></figcaption></figure>

(b) Under sub-domain, click “Add”.

<figure><img src="/files/ReSM0wNLU1owxl4DYjeF" alt=""><figcaption></figcaption></figure>

**Step 4.** Enter the desired sub-domain name, e.g. john.cronos.cro

{% hint style="info" %}
Please double check as you will not be able to edit or delete the sub-domain created!
{% endhint %}

<figure><img src="/files/5kvcNyLzagjQvhWNUhyI" alt=""><figcaption></figcaption></figure>

**Step 5.** Enter the Controller wallet address. Owner of this wallet address will take ownership of this sub-domain.

<figure><img src="/files/EiRjq5WZuohN5QGXKP65" alt=""><figcaption></figcaption></figure>

**Step 6.** Click “Confirm and Next” and confirm the transaction approval on your wallet.

<figure><img src="/files/TMAcDZxySOPvUBHnqM3Z" alt=""><figcaption></figcaption></figure>

**Step 7.** You have successfully created the sub-domain! You can now view the sub-domain under “My Domains”.

\
Don’t forget to update the domain profile with your desired social media links and crypto addresses! Click [here](/user-guides/cronos-id-domains/managing-domain-profile) for the full guide.

<figure><img src="/files/KuXCzJPzYc4gzEWrW2HA" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/eNdqE9cdkeNicITPc6IB" alt=""><figcaption></figcaption></figure>

\ <br>


# Editing controller of sub-domain

{% hint style="info" %}
Only the controller of the parent domain will be able to edit the controller of the sub-domains.
{% endhint %}

**Step 1.** Go to Cronos ID homepage and click “My Domains”. Here you can view all the domains you own and the sub-domains under each of them.

<figure><img src="/files/KJZOWndP3j2BNkmNTlmu" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/qEUCygxFHajitPxcIzr2" alt=""><figcaption></figcaption></figure>

**Step 2.** Go to the parent domain of the sub-domain that you want to edit, click “Manage”.

<figure><img src="/files/1ZvIM79S3aYLeLaujqyX" alt=""><figcaption></figcaption></figure>

**Step 3.** (a) Click on the sub-domain that you want to edit.

<figure><img src="/files/dusfCIawtPe4RWQfYHTQ" alt=""><figcaption></figcaption></figure>

(b) Click on the edit button next to Controller

<figure><img src="/files/KdJ35XBQ8nHwP2qvqgjz" alt=""><figcaption></figcaption></figure>

**Step 4.** Enter the wallet address that you want to transfer the ownership of the sub-domain to. Then click “Change Controller” and confirm the transaction approval on your wallet.

<figure><img src="/files/oNAvz82T3Eaj9SQ8Q3z2" alt=""><figcaption></figcaption></figure>

**Step 5.** You have successfully changed the controller of your sub-domain!

<figure><img src="/files/FI08Ky5861EM3oubwZDk" alt=""><figcaption></figcaption></figure>

<br>


# Managing sub-domain

{% hint style="info" %}
Only the controller of the sub-domain will be able to manage the domain and edit domain profile.
{% endhint %}

Please refer to [this guide](/user-guides/cronos-id-domains/managing-domain-profile) to learn more about managing your sub-domain.


# FAQ

## &#x20;**Domain Registration**

<details>

<summary><strong>How many steps does registering a domain take?</strong></summary>

Each domain registration requires users to go through two steps:

1. Submit your domain registration request. Please note that there will be a waiting period of XX seconds to prevent other users from front-running you.
2. Confirm your registration. You are the owner of the domain once this is completed.

</details>

<details>

<summary>Is there a character limit for domain names?</summary>

* We only accept characters a-z, numerical numbers 0-9 and dash symbol "-"
* Domain names should be at least 3 characters long

</details>

<details>

<summary>What characters/symbols can I use for my domains?</summary>

Currently, we only accept the following:&#x20;

* Characters a-z&#x20;
* Numerical numbers 0-9&#x20;
* Dash symbol "-"&#x20;
* Emojis, e.g. 🚀&#x20;
* East Asian characters, European characters, and other characters supported in UTF-8 character set

</details>

<details>

<summary>What can't my emoji domains be displayed?</summary>

Emojis with FE0F unicode may experience display issue, so it’s recommended to

1. Double check your domain using the search bar before minting
2. If there’s display issue with the emoji chosen, refrain from minting the domain with that emoji

</details>

<details>

<summary>How much does registering a domain cost?</summary>

Registration costs are set at the following prices\*:

* Domain name with 5+ characters:&#x20;
  * US$9.90/year in $CRO
* Domain name with 4 characters:&#x20;
  * US$150/year in $CROID
  * US$180/year in $CRO
* Domain name with 3 characters:&#x20;
  * US$450/year in $CROID
  * US$500/year in $CRO

*\* Please note that these exclude gas fees*

</details>

<details>

<summary><strong>How long does it take to register a domain?</strong></summary>

It takes just two steps and less than a minute to register your domain.

</details>

<details>

<summary><strong>How can I renew my domain registrations?</strong></summary>

You can renew your domain(s) in **My Account**.&#x20;

There is a **90-day grace period** from the expiration date. Please make sure that you renew the domain subscription within the grace period. After the grace period lapses, the domain will be released for public minting.

</details>

## Domain Management

<details>

<summary><strong>Can I transfer my domain?</strong></summary>

Yes, you can. However, please note this **this action is irreversible**.

</details>

<details>

<summary>Can I add multiple wallet addresses under my domain name?</summary>

Yes. Additionally, this is not limited to just Cronos wallet addresses, with Ethereum and Cronos POS Chain addresses being supported as well.

</details>

<details>

<summary>Can Cronos ID domains be traded on NFT platforms?</summary>

Yes, they can. Additionally, Cronos ID domains follow the CRC721 standard and one NFT platform that supports this would be Minted.

</details>

<details>

<summary>What will happen to domains after the expiration date?</summary>

Expired domain will first enter a 90-day grace period, during which:

* Domain owners will not be able to:
  * Edit the domain profile
  * Add subdomains
* Domains listed on Minted Network, Crypto.com NFT or other NFT marketplaces can't be bought/sold
* When a parent domain expires, controllers of all the sub-domain will not be able to edit their profiles. However, the subdomains will continue to be valid and resolve the same addresses.

</details>

<details>

<summary>What will happen to expired domains after the grace period?</summary>

Expired domains will then enter a Dutch auction for public purchase on a first-come-first-served basis. During this period, the price of domain will consist of two components:

**(1) Regular subscription fee**

* Details can be found on our [Domain Pricing Model](https://docs.cronosid.xyz/domains-pricing-model) page
* Discount stated in our Domains Pricing Model will only be applicable to the “Regular subscription fee” component
* Payment tokens:
  * \>=5 characters domain: You can only pay in $CRO
  * 3-4 characters domain: You can pay in $CRO or $CROID

**(2) Renewal premium**

* This premium is paid on top of the subscription fee. Premium amount decreases daily from USD 100M until it reaches USD 0 after 28 days, so the required premium varies depending on the date of purchase
* This ensures that all users are given fair opportunity to enter the auction stage and register a newly expired domain.
* Payment tokens:
  * \>=5 characters domain: You can only pay in $CRO
  * 3-4 characters domain: You can pay in $CRO or $CROID

**Note:**&#x20;

1. Payment will be done in one go, so that selected payment tokens will be applicable to both the regular subscription fee and renewal premium.
2. New subscription period will start from the domain expiration date, instead of the day of renewal past the expiration date.

</details>

<details>

<summary> How can I enjoy the discount on the regular subscription fee?</summary>

The discounted subscription fee is applicable to the following scenarios:

1. When you mint and subscribe to a new domain
2. When you subscribe to an expired domains past grace period

You can enjoy discounted subscription fee if you:

1. Subscribe for longer period
2. Choose to pay in $CROID (applicable to 3-4 characters domains only)

Visit our [Domain Pricing Model](https://docs.cronosid.xyz/domains-pricing-model) page for more details.

Please note that discounts are not applicable to the following scenarios:

1. When you extend your domain before grace period
2. When you renew your subscription during grace period

</details>

<details>

<summary>What will happen to the expired domain if no one purchases it during/after the bidding period?</summary>

It will continue to resolve the address of the original owner, until someone else purchases the domain and overwrites it.

Please note that you can purchase expired domains on our website only, and you will need to claim it on our website afterwards.

</details>

## Sub-domains

<details>

<summary>Is there a limit to how many sub-domains I can create under the parent domain?</summary>

You can create as many sub-domains as you want.

</details>

<details>

<summary>If I’m the controller of a sub-domain (e.g. community.johndoe.cro), can I create another sub-domain under this (e.g. staff.community.johndoe.cro)?</summary>

Yes. As a controller of a sub-domain, you can create as many sub-domains under that as you want.

</details>

<details>

<summary>Do I need to pay additional subscription fees for the sub-domains?</summary>

No additional subscription fees! You just need to pay for the transaction fee involved.

</details>

<details>

<summary>Can I edit the sub-domain name or delete a sub-domain?</summary>

You cannot edit the sub-domain name or delete the sub-domain. You can only edit the Controller wallet address, or create a new sub-domain.

</details>

<details>

<summary>I’m the controller of a sub-domain. What would happen if the parent domain expires?</summary>

Parent domain and sub-domain have individual expiration dates. If the parent domain expires, your sub-domain will still be valid.

However, if the parent domain expires, it could potentially be taken over by a new Registrant if he/she fails to renew the subscription within the grace period. This will lead to the following risks:

1. Sub-domains being associated with an unknown owner
2. Controllers losing access to their sub-domains, as new owner of the parent domain will be able to edit the controller of the sub-domains

</details>

## **Cronos ID vs other similar offerings**

<details>

<summary><strong>How is Cronos ID different and unique from the rest?</strong></summary>

Cronos ID and the other naming services on Cronos are different projects that use different sets of smart contracts. While domain service is a core part of our product, we are not stopping at this level. We will be leveraging the domain service and expanding into the notification and messaging aspects.

This helps both everyday users and protocols to be integrated with the broader Cronos ecosystem. You can expect us to work closely with the other Cronos protocols and deliver new products on top of the current domain services in the future.

</details>

<details>

<summary><strong>If I have already minted e.g. johndoe.CRO on another naming service protocol e.g. CNS, can I still mint the same domain on Cronos ID? If yes, what is the difference between the two?</strong></summary>

You will still be able to mint the same domain johndoe.CRO on Cronos ID as they are separate domains running on different smart contracts. The main difference lies in the project implementation and roadmap of Cronos ID and the other similar protocols, as they determine the usage of the domain minted on the protocols separately.

For instance, in the next phase of our roadmap, we will be launching notifications services, which allow users to get the latest updates from protocols directly without manual checking of individual DApps and their social media channels. This will be made possible by the domain service we have just launched.

To ensure that you are able to get the same domain you have on CNS over at Cronos ID, we have taken a snapshot on Aug 25 at launch and reserved those domains for you on Cronos ID.&#x20;

* For >=5 characters domains, the reservation period has ended and all reserved domains are now released for public minting&#x20;
* **For 3-4 characters domains, you can claim and mint your reserved domains after our launch on Dec 1 until Dec 29 4:00am UTC**

During this period, you will be able to mint the same domain on Cronos ID based on this [pricing model](/domains-pricing-model).

Please note that prominent brands and terms, inappropriate terms, and sensitive words have been protected from public minting. If you have any questions regarding your domain availability, please refer to our [Protected Domains Policy](/extras/protected-domains-policy).

If your reserved CNS domains fall under our “Protected Domains”, you will be given a replacement domain with the same number of character and 1-year free subscription. Please reach out to our Discord server admin using the #support-ticket channel. Let our admin know that you fall under the “Protected Domains” category and submit the following information:&#x20;

1. CNS domain you owned during the snapshot time (Aug 25)&#x20;
2. The wallet address that owns the domain&#x20;
3. Your Discord user name for us to contact you&#x20;
4. The desired 3-4 characters replacement name (same character length as your reserved CNS domain)

The above information is only collected for verification purpose. After this reservation period has elapsed, we will release the domains and the public will be able to mint them.

</details>

<details>

<summary>I have already minted a domain on CNS. How can I claim the same domain reserved for me on Cronos ID?</summary>

First, you need to connect to Cronos ID using the same wallet address that owns the domain on CNS.&#x20;

Then go to the search bar, type in the CNS domain you own, and mint the domain reserved for you.

</details>

<details>

<summary><strong>If I own the same domain e.g. johndoe.CRO on Cronos ID and other similar protocols, and bind the domain name to the same wallet address, what will happen if I try to receive payment using the domain name which is the same on different protocols?</strong></summary>

Domain services in Web3 use Resolver contracts to store the mapping between domain names and wallet addresses on-chain. These Resolver contracts are unique to each protocol offering domain service. Usage of domain names will depend on the integrations each of these domain service protocols have with other protocols.

Here is an example: Cronos ID has Resolver contract A, while another domain service Protocol X has Resolver contract B.

When Protocol Y wants to enable sending/receiving funds via domain names, they will need to integrate with Cronos ID’s Resolver contract A and/or Protocol X’s Resolver contract B, in order to get the mapping between the domain name and the wallet address and make payment via domain names possible.

If you have minted johndoe.CRO on both Cronos ID and Protocol X, there will be 2 separate mapping between your domain name and the wallet address in the two Resolver contracts respectively.

If you wish to use Project Y which has only integrated with Cronos ID’s Resolver contract A, but you have only minted a domain name and bound to your wallet address via Resolver contract B by Protocol X, you will not be able to use the service offered by Project Y as they will not be able to find the wallet address behind the domain name.

While a user cannot individually choose which Resolver contract or protocol a dApp project integrates, they can take measures to protect against transfers to an incorrect Resolver contract. A user can mint the domain name on both relevant Resolver contracts and bind them to the same wallet address. Alternatively, if a user decides to keep only one domain name with one Resolver contract, the user can and should check that the dApps they intend to use have integrated the relevant Resolver contract.

</details>

## Others

<details>

<summary><strong>What is a Resolver?</strong></summary>

A resolver is a contract that maps a domain name to a resource (wallet addresses, content hashes, etc.). This allows people to search for your domain name using your wallet address(es) and vice-versa.

</details>


# $CROID Staking Vaults

<figure><img src="/files/dE088rfW0UjUMnBHd9EA" alt=""><figcaption></figcaption></figure>

$CROID Staking Vaults are LIVE!

If you are a Cronos ID domain holder, you can now deposit $CROID into our staking vaults to earn additional $CROID rewards.

## Staking Vaults

There are 4 staking vaults for you to choose from - 1-month, 9-months, 24-months, and 48-months. Each of the vaults has its corresponding boost multiplier to boost your $CROID rewards from the staked tokens. The longer the staking period, the higher the boost multiplier hence your $CROID rewards.

Please note that once you have deposited $CROID into the chosen vault, you will not be able to withdraw the tokens before the end of the locking period.

## Real Yield

We are supporters of sustainable practices, and that includes staking rewards. These come in the form of $CROID and $wCRO as we want to reward our supporters with real yield. Refer to the table below to understand how the said rewards are distributed:

<table><thead><tr><th>Domain subscription fee payment</th><th>Revenue distribution</th><th data-hidden></th></tr></thead><tbody><tr><td>User pays in $CROID</td><td><ul><li>40% shared with $CROID stakers</li><li>40% sent to treasury</li><li>20% burnt</li></ul></td><td></td></tr><tr><td>User pays in $CRO</td><td><ul><li>40% shared with $CROID stakers as $wCRO</li><li>40% sent to treasury</li><li>20% buyback $CROID and burnt</li></ul></td><td></td></tr></tbody></table>

To get started, make sure you have at least 1 Cronos ID domain and some $CROID in your tokens. Click on the links below if you haven’t already got them:&#x20;

1. [Minting your own domain ](https://cronosid.xyz/)
2. [Purchasing $CROID](https://vvs.finance/)


# Staking $CROID into Vault

**Step 1.** Go to Cronos ID homepage and click “Vault”.

<figure><img src="/files/JtjERa6ojehSvoy6mosi" alt=""><figcaption></figcaption></figure>

**Step 2.** Go to the “Vaults” tab to check the available vaults, their respective locking period and APR%. Go to the desired vault and click “Stake” to proceed.

<figure><img src="/files/v0sxBZmf8d5cPCgd5mg3" alt=""><figcaption></figcaption></figure>

**Step 3.** Enter the amount of $CROID you wish to deposit into the staking vault. Click on “Continue” to proceed.

<figure><img src="/files/kaRkPufnZB2VT5VanAMA" alt=""><figcaption></figcaption></figure>

**Step 4.** Review the transaction details and click “Confirm stake” to proceed.

<figure><img src="/files/FGZrFlnb9pflnS3zDxM6" alt=""><figcaption></figcaption></figure>

**Step 5.** Wait for the transaction to be processed.

<figure><img src="/files/szNYb4k0DRKp0WbUw4Kg" alt=""><figcaption></figcaption></figure>

**Step 6.** Your $CROID has been successfully deposited into the staking vault.

<figure><img src="/files/yIK2W5vFLGnwXULDJ9V6" alt=""><figcaption></figcaption></figure>


# Claiming Vault Rewards

**Step 1.** Go to Cronos ID homepage and click “Vault”.

<figure><img src="/files/51WLh0iQuUCn8JyIAkUV" alt=""><figcaption></figcaption></figure>

**Step 2.** Click on “My Earnings” to check your deposit summary and status.

<figure><img src="/files/f2PDYmd9FKMSGM7bG6h7" alt=""><figcaption></figcaption></figure>

**Step 3.** Click on “Claim All CROID” to claim the available rewards generated from all vaults combined.

<figure><img src="/files/hJuwp4pz763Jruy0B0u1" alt=""><figcaption></figcaption></figure>

**Step 4.** Review the transaction details and click “Confirm” to proceed.

<figure><img src="/files/BQda69e76LRl1c4pudk1" alt=""><figcaption></figcaption></figure>

**Step 5.** Wait for the transaction to be processed.

<figure><img src="/files/n9vRFKXjLs68dk363Nva" alt=""><figcaption></figcaption></figure>

**Step 6.** You have successfully claimed the vault rewards.

<figure><img src="/files/fvkTGeQxWfHRrMaNTt64" alt=""><figcaption></figcaption></figure>


# Staking Additional $CROID into Vaults

**Step 1.** Go to Cronos ID homepage and click “Vault”.

<figure><img src="/files/I8akBsY2HuHAjH8Iv1zW" alt=""><figcaption></figcaption></figure>

**Step 2.** Click on “My Earnings” to check your deposit summary and status.

<figure><img src="/files/ZBBltqznPZ1xSZiU033M" alt=""><figcaption></figcaption></figure>

**Step 3.** Choose the desired vault that hasn’t ended, i.e. status of the vault is showing the locking duration left. Click on “Stake More” to stake additional $CROID into the vault.

<figure><img src="/files/vmCDqrPpA79rpstsAAUf" alt=""><figcaption></figcaption></figure>

**Step 4.** Enter the amount of $CROID you wish to deposit into the staking vault. Click on “Continue” to proceed.

<figure><img src="/files/px5Ey6GlUASN9tjtLyTb" alt=""><figcaption></figcaption></figure>

**Step 5.** Review the transaction details and click “Confirm Stake” to proceed.

<figure><img src="/files/kKofH57tvDI9XIa5743e" alt=""><figcaption></figcaption></figure>

**Step 6.** Wait for the transaction to be processed.

<figure><img src="/files/MVOHQnpdzOaCABPM5tbE" alt=""><figcaption></figcaption></figure>

**Step 7.** Your $CROID has been successfully deposited into the staking vault.

<figure><img src="/files/bvnLDqPv8RTsL8oBnDFg" alt=""><figcaption></figcaption></figure>


# Upgrading Vaults

**Step 1.** Go to Cronos ID homepage and click “Vault”.

<figure><img src="/files/SySZiLWmQOpUXKpV8Lyt" alt=""><figcaption></figcaption></figure>

**Step 2.** Click on “My Earnings” to check your deposit summary and status.

<figure><img src="/files/7Lhd4O6s6BhlpNZyRa1d" alt=""><figcaption></figcaption></figure>

**Step 3.** Choose the desired vault to upgrade. You may upgrade both ongoing vault and vaults that have already ended. Click “Upgrade” to proceed.

<figure><img src="/files/UkdRD0mJifBBrPbvT5R0" alt=""><figcaption></figcaption></figure>

**Step 4.** Select the desired locking period you wish to upgrade to. Click “Review Upgrade” to proceed.

<figure><img src="/files/DNOHMm7BCJKmhqTM7MD1" alt=""><figcaption></figcaption></figure>

**Step 5.** Review the transaction details and click “Upgrade and Claim” to proceed.

<figure><img src="/files/dBcbadlsiGPNPsyuBJXI" alt=""><figcaption></figcaption></figure>

**Step 6.** Wait for the transaction to be processed.

<figure><img src="/files/8NypSYiNWqOueTIfhlsC" alt=""><figcaption></figcaption></figure>

**Step 7.** You have successfully upgraded the vault.

<figure><img src="/files/yBEcfPhOnjPKeKRcolKZ" alt=""><figcaption></figcaption></figure>


# Unstaking $CROID from Vault

**Step 1.** Go to Cronos ID homepage and click “Vault”.

<figure><img src="/files/95uxQD4R7NOuLf81W23s" alt=""><figcaption></figcaption></figure>

**Step 2.** Click on “My Earnings” to check your deposit summary and status.

<figure><img src="/files/f2PDYmd9FKMSGM7bG6h7" alt=""><figcaption></figcaption></figure>

**Step 3.** Choose the desired vault with the status “Ready to Unstake”. Click on “Unstake & Claim” to unstake the deposited $CROID and claim the $CROID rewards generated from the vault.

<figure><img src="/files/3mvKcUe7DUIBSgUHTjSS" alt=""><figcaption></figcaption></figure>

**Step 4.** Review the details and click “Unstake and Claim Rewards” to proceed.

![](https://lh3.googleusercontent.com/Bl2U4LYzlyxJx1bsSvis1fTAXprDVEjkoySrBzc1Avu3LPVWiVtvirv0axds0UPGUJWbHPownB5vUf_OqFx5q2gDR5qrZNXlZ6ItwExl-IEq2RFhQG7jcSmZs8f7PqYXu2uI3NBQxff6iSvQ_18vdLoJE2RRyqIElRJu88T6jP2OmSKprhbDe5e-R1VIJg)

**Step 5.** Wait for the transaction to be processed.

![](https://lh4.googleusercontent.com/6TIvKY0IisG27l5J_Z4d1vp3zAoueTL9dX8DlT1T501ZkWirBplUgdGWKOtT-FgyOSR9Bqc6CoX605-e4cIwa3BSZuExR0pj60Yf5_xmfTd7_36mnzXRM1giiVSfFlHtyFmDaThDiWxZrODexBRXa2XTYywy9Cm5HyS1KwTCEej8-lAnuvUW2mcPhoKF8Q)

**Step 6.** The $CROID deposits and rewards have been successfully unstaked and claimed.

![](https://lh4.googleusercontent.com/_pnZ52ye4-steOKqyPraUlmZc_VgKMUqnR2h3WeqOZ5TqK0ddvy6ymG0EsEYhn1JDje2g_t4W63uzyjJgVqgSLm16n90-DDizwFshadhdA1iMgKHO8S4b2lN67xUBz4unXwqyIQUWch_KeU9N3ujEWh-rLW7NGPGUKcZOHQ0d60-Spi1P2_YUQ7hcz7YCg)


# FAQ

**1. How do I participate in $CROID Staking Vaults?**

First, you need to fulfil the following requirements:&#x20;

1. Hold at least 1 Cronos ID .cro domain. You can mint your personalised domain [here](https://cronosid.xyz/).&#x20;
2. Own $CROID for staking. You can purchase the tokens here.

Once done, you can visit [this page](https://cronosid.xyz/vault) to start staking. You can learn more about staking using our user guide [here](/user-guides/usdcroid-staking-vaults/staking-usdcroid-into-vault).

**2. Can I unstake my $CROID rewards before the locking period ends?**

No. You can only unstake your deposited $CROID after the locking period has ended.

**3. If I sell my domain after staking into the vaults, will the vaults still be running? Will I be able to claim the rewards?**

If you have previously staked into the vaults, but later on sell your domain such that you don’t have any other domains in your wallet:&#x20;

1. This does not impact the previous vaults you have created. You can still earn rewards from those vaults. However, you will not be able to upgrade your vaults.&#x20;
2. This only impacts the future vaults you want to create. You must get a domain (and own $CROID) before you are allowed to create new vaults.


# Crypto.com Onchain Integration

<figure><img src="/files/O2FQVX8zzX4nSdpZjE7d" alt=""><figcaption></figcaption></figure>

Cronos ID is integrated with Crypto.com Onchain!

No more long and complex wallet addresses. You can now send/receive tokens using Cronos ID domain to identify wallets with ease! All tokens on Cronos are supported.

Before you start, make sure you have the Crypto.com Onchain app and own a Cronos ID domain. If you haven’t minted your domain, click [here](https://cronosid.xyz/) to get your personalised domain now!

Please also make sure that you have inputted the correct wallet addresses under “Domain Profile” > “Crypto” > “CRO” of the domains you own. (For the detailed guide, see [here](/user-guides/cronos-id-domains/managing-domain-profile))

<figure><img src="/files/8eABLWM9HiYG9p6j9ZFV" alt=""><figcaption></figcaption></figure>

This ensures that the domain is mapped correctly to the CRO wallet address that you wish to link, so the tokens will be sent to the correct wallet address via the Cronos ID domain.&#x20;

{% hint style="info" %}
**Important Note:**

When you perform transactions using Cronos ID domain, e.g. johndoe.cro, the corresponding wallet address will be the one you have manually inputted under “Domain Profile” > “Crypto” > “CRO”
{% endhint %}

Read more about the features in the user guides below:&#x20;

1. If you are using Crypto.com Onchain mobile app, click [here](/using-cronos-id-on-crypto.com-onchain/for-crypto.com-onchain-mobile-app-users)
2. If you are using Crypto.com Onchain Chrome extension, click [here](/using-cronos-id-on-crypto.com-onchain/for-crypto.com-onchain-extension-chrome-users)


# For Crypto.com Onchain mobile app users

If you are using **Crypto.com On Chain mobile app**, read the user guide below to find out how to use the features:

1. [Setting wallet name](/using-cronos-id-on-crypto.com-onchain/for-crypto.com-onchain-mobile-app-users/setting-wallet-name)
2. [Sending token](/using-cronos-id-on-crypto.com-onchain/for-crypto.com-onchain-mobile-app-users/sending-token)
3. [Receiving token](/using-cronos-id-on-crypto.com-onchain/for-crypto.com-onchain-mobile-app-users/receiving-token)
4. [Sending NFT](/using-cronos-id-on-crypto.com-onchain/for-crypto.com-onchain-mobile-app-users/sending-nft)
5. [Receiving NFT](/using-cronos-id-on-crypto.com-onchain/for-crypto.com-onchain-mobile-app-users/receiving-nft)


# Setting wallet name

**Step 1.** Open the Crypto.com Onchain homepage. Click on the top left wallet icon

![](https://lh4.googleusercontent.com/JPImEsfSHJuEmcvm_oPoO16zrqg4zVsv7XeRq9_UDWhbI5C7I92K48dFrENK-Fz_Ppsy1bCGkAiG3AVfb7_2DvbM6CagGf6u80PkHIJKbCHUjgopx4M8uaIyN_5aJc-eovvMewc0MzIcZuGfM8c06Jp42Wq1JaHjYR98ZsFTPqcK_psnqCLGi6Vrhg)

**Step 2.** Click on the wallet drop-down menu

![](https://lh4.googleusercontent.com/FmICSl3z8dvBCmxbiMz9ivlWAm8lyYTmLOEhKIVyIImJyJO1l2dP4OoAqsMoMd3HaDgGdGW21qPGAQskk_crTOhKzZxPTSFO01AXsa9GHEYBMI3kKU8BhbXT29mAU0kmn1TTrFHREZHQ4bfe8QZNe9LNfv7_XODTNbqq48jZP1tJX6zcDKb5JOwGNA)

**Step 3.** Go to the wallet you want to edit the name. Click the “more” icon.

![](https://lh6.googleusercontent.com/MHaFkHs6Z0BqnAWlrpYtCD3wGtMn1SRUvkZ_D6czLQmLmIjnD1CU_dIuPDC9W4CixyUjOBLgPwH9MtTKuXvIJ3-8Zp46JetFW0PLCfmabbQdGk9ZO-R2ba9_K9GnFX23CJVQrs5bblTIVrU7BOrtGHesPyBEvxwUxbHe6jkMscS2sJo4wMCHrXaM-w)

**Step 4.** Select “Edit Wallet Name”

![](https://lh3.googleusercontent.com/-pGW-iNAWe1Zn4ZaY-qpOPqqsB1lc3TrsLU9J2x5TIVmf7hkAHQtOcWYb_FsVlAcTCBIsMfN16mqbnr4ddyHS9I5aHNQhvu7utNSGpalyTYvUFDtjM4B0LogfOJMsGY4gdbcvQpiLZ9JPVKZSxHBBN9M7gpiCumlkRVSawcZ5lg5YScuXwk2fGcD5g)

**Step 5**. (a) Under “Name”, type in the Cronos ID domain you want to use as your wallet name. \
(b) Under “Use your Cronos ID”, select the domain available. \
(c) Click “Continue” to proceed.

![](https://lh6.googleusercontent.com/Xz80V8ViuK2vdFEifFWnrh_EJI8Dt2_zixzDpBX5I_uG2BuV8brInrHci8P_GhPiDaWrRUJHotvWScLW1SMujgQhw0ZbBsbGxJUMy7LTd-QJRwYrN-l3YSkON5fPHih53OKiaowk_UlPQhVvuWFGLYr6Fw5bml2NGd1gEOLNxNCS3OFnAOnNNttOjQ)

{% hint style="info" %}
**Important Notes**

1. If you are the owner of the Cronos ID domain, it will be automatically suggested under “Use your Cronos ID”. Please make sure that you are using the wallet address which has minted the domain.
2. If you are not the domain owner (e.g. cronosid.cro), you may still use the inputted name as your wallet name. This will function as the typical custom wallet name.
3. Wallet name has a character limit of 50. If your Cronos ID domain has more than 50 characters, it will not be used to replace your wallet name, as it exceeds the character limit. The domain name will be capped at the 50th character. However, you can still use the send/receive functions via Cronos ID.
4. If you wish to use other names as your wallet names, you can simply input the desired wallet name without selecting the suggested Cronos ID domain that you own.
   {% endhint %}

**Step 6.** Your wallet name has been successfully updated to the Cronos ID domain you have selected.

![](https://lh4.googleusercontent.com/8--csuC3nyeEOgC8oguQTd3Z4GhH8xxkP-zMy_0IW3Y9iESbjPYJ0yAHgVFY2dvipSTp-a2wkqHD6VbGxNyPZENYUWI2GhRZmkQuN-lxWJX2h89EbU6ohp-ODivIUhu99sIHNzen4YKL3eJusuTUwS7rhhMXlmeNIvidJF-M9j_qsfEwpc-oMmsfPQ)![](https://lh6.googleusercontent.com/t0rrK5gt1sUriP4Tll2J2FTQ2ILyGyduRKen1BVhLJRnF6pboyjGWGKZo9UCov7mo7dJpBvN8uWGWJTRVlIgyXP9kJF38ay-tYM0JABACAsVwx9QIetT5eO5u7ceZg9_AHAdWOUx_mIB95RYIjQR7WFHfK-MoMyUqGjFZ5WM5J3rSTwPJYamV-f-KA)


# Sending token

**Step 1.** Open the Crypto.com Onchain homepage. Click on the top left wallet icon

![](https://lh5.googleusercontent.com/umKqDQRzVYZ65S8F7PBA-r0J8E82F6GTGtZgsZHXLIOVeDrVMGsaSKn2VcdIiiDCAcmrNyJFKWE60ad9ubq1LzsYrisKpiizNhlpnrNyXriLJlLFJzo7L1oa0KmnLY7-v4vzfDC9j2-E8gYuXy8dYv6HpRMCbFZ3tcy3eVKKiughz3bot9FBsmMFGw)

**Step 2.** Select the token you want to send to another wallet.

![](https://lh6.googleusercontent.com/LdwrnLRfJkKRnD0nuDVSlwjsFUcRXSRTHNlmXZVHxj5aJMHtD3BQW6WRwFLB4tbT9nGJS3X6qf_S9qF-wNq3t5szxIsecd647Q9delQZcoQIh-q4tPl79xyPf0Sx1oNF2SRQMdfWblPF1FBX8cyKKL5w5byKNfMlhzJcTBy9KP-1WONiu1ukaxC2_A)

**Step 3.** There are two ways you can input the wallet you want to send the token to \
(a) Enter the Cronos ID domain \
(b) Enter the wallet address

**A. Enter the Cronos ID domain**

**A1.** Enter the Cronos ID domain you want to send the tokens to (e.g. domain123.cro). If it is a valid domain, the corresponding wallet address will be shown below the domain. Click “Next” to proceed.

![](https://lh3.googleusercontent.com/ueTavbrtm1gHhBVemSjzfilToJT14GTRjQUmXFVnX8znjCrvGQPg1gWZe0QcykzG3GNWzgnvDcCPd5-oWXSxAvV-avntKehBykJjfQj2rLsg-DcdkHf5S76vduJ_uxLgK4gTgF1YKmTJSD_OBUrSzAV1jPFR1aFOcm0yeyF17a15OR-NlN9Fl418ZQ)![](https://lh5.googleusercontent.com/oRa5sKLxmJvR0wQrJH7aU58ng9694HjCF4R55eqAMYdL1el3CIMH9ujMeAgo_vtIiSKUWF2twewZlTi7ZXMVfpBhfwOkFzBxFTf5kH6yoYGPGoDwwLD7bONHp1YovorxPiMwDUn4ZuJWcJO9nTo3VUCyemG8Tv9-w2kCLlh7Q9BFXQs5NXudeY6dlw)

If you see the “Invalid Cronos ID” warning message, it means that the Cronos ID does not exist.

![](https://lh4.googleusercontent.com/ENinA_foL3xvsjVHKkEciOajsmZV9Ymch_c6ARBVyR7wp9456kEU5mBSh33XoBJuCSBxD6KUeEITAHvfqnrNLvPePT0G3zC8pU4PqJbKXiPUh8WLMbCzY5PRSg3UA3HxgqvUnEB5opDSjmsC3R3T8Zbj6sL1uMkrLa1n3wlK_0AguW3V64EFIwb0eA)

**A2.** You can also scan the QR code of the wallet you want to send to. If it is a valid QR code, the corresponding domain name and wallet address will be shown. Click “Next” to proceed.

![](https://lh5.googleusercontent.com/fXjRJ-mBOKS3yz1joJrqpTRmjO0to9S6JFXoOYP5VQdAkyxmYeeV64HXv6zAhxTWfz24qs4HNUyKx5ROI_KhaVmWrLYfTRY3GicNoW8rRxx53AMGODo7Q6sK07vFZT5NGb1cNr-CF2Kgei42rH6O0B83kkG13Me9hTlKaMiYWIBmXXpAM6pkuK-s3Q)![](https://lh3.googleusercontent.com/LfpuLuNYIn_3uOXoFw2qnq-k6tarfROKaqvbGiHzgzpPwaeb-AVCc3Yzf2UtGIhong1nwo2irRKnoZg1zI7TCecf6GlyEIxFCrzQ85exYWZq5jw7qz3Mooz7izrhCch9PPTGvXRERZeir3hbLyyq3nmZSZOwLWLny9WHy8-jGxhsCUXSNk9R43kv7Q)![](https://lh5.googleusercontent.com/oRa5sKLxmJvR0wQrJH7aU58ng9694HjCF4R55eqAMYdL1el3CIMH9ujMeAgo_vtIiSKUWF2twewZlTi7ZXMVfpBhfwOkFzBxFTf5kH6yoYGPGoDwwLD7bONHp1YovorxPiMwDUn4ZuJWcJO9nTo3VUCyemG8Tv9-w2kCLlh7Q9BFXQs5NXudeY6dlw)

**B. Enter the wallet address**

**B1.** Enter the recipient’s wallet address. If it is a valid address, the corresponding Cronos ID domain will be shown below the address. Click “Next” to proceed.

![](https://lh3.googleusercontent.com/ueTavbrtm1gHhBVemSjzfilToJT14GTRjQUmXFVnX8znjCrvGQPg1gWZe0QcykzG3GNWzgnvDcCPd5-oWXSxAvV-avntKehBykJjfQj2rLsg-DcdkHf5S76vduJ_uxLgK4gTgF1YKmTJSD_OBUrSzAV1jPFR1aFOcm0yeyF17a15OR-NlN9Fl418ZQ)![](https://lh6.googleusercontent.com/xHOp1J-rZL6PcGN7TihPYJrS4xajeSr4m6jRdAiFvS48guZv2_Noz8vUE0busDuQHyLVfubHlz5jgHqVCtfRmazcmPLhpIE04hH9NGAGSWFB_gB5UpnQ8dQswcSB3Lag_4tLk1rx_Dh0SshKwb9F4B6wGwrtnDaIxoOm0jDLDdGoeVnVuLFVht7TNw)

**B2.** You can also scan the QR code of the wallet you want to send to. If it is a valid QR code, the corresponding domain name and wallet address will be shown. Click “Next” to proceed.

![](https://lh4.googleusercontent.com/NaeajzQKXqpboqdUz30ejr-S4Sek0Zmyh8qbZqwWa8Dh62DAKMD9863Nux4uJ3bcFM1qv0DCJtlk5hIDopNSmuUVrB492T9vmPhrAwkvZmkGJRtAFfo7HQLCyMLx3P42A-fs-b1FIZ4cDZiDjTBan6X6cZs9NRBp1aB1uILylSoTe3eQDPFJLgOkPg)![](https://lh3.googleusercontent.com/LfpuLuNYIn_3uOXoFw2qnq-k6tarfROKaqvbGiHzgzpPwaeb-AVCc3Yzf2UtGIhong1nwo2irRKnoZg1zI7TCecf6GlyEIxFCrzQ85exYWZq5jw7qz3Mooz7izrhCch9PPTGvXRERZeir3hbLyyq3nmZSZOwLWLny9WHy8-jGxhsCUXSNk9R43kv7Q)

![](https://lh6.googleusercontent.com/xHOp1J-rZL6PcGN7TihPYJrS4xajeSr4m6jRdAiFvS48guZv2_Noz8vUE0busDuQHyLVfubHlz5jgHqVCtfRmazcmPLhpIE04hH9NGAGSWFB_gB5UpnQ8dQswcSB3Lag_4tLk1rx_Dh0SshKwb9F4B6wGwrtnDaIxoOm0jDLDdGoeVnVuLFVht7TNw)

**Step 4.** Input the amount of token you want to send. Click “Send” to proceed.

![](https://lh6.googleusercontent.com/rMOCLRwKH-C22fJJNCANWJhpOAskg2-wl8wvNHspKPBJFsiTXTFjUxc6HvB3lsJumYDvFKEt_iOFd34fvDxYWiQs2WrXZqNUQbOsxYBm9HzsHvVmBd0i-5Ub64fWYKoDJGC0192DeGuIZWwzLcJktqsgRnqMpLiLroMfL4d0QpzkpZGEJZV_rvTBNQ)

**Step 5.** Double-check the transaction details. Click “Confirm to Send” to proceed.

![](https://lh4.googleusercontent.com/i3_QfDO-3wmFGMzcH7pxGAx5aNdLOiceIXfeoMVxpLNpuu-hXLWa3IPnIlbKeydK0Ix0VEwNw8nDZ1-KvoWGuvb7SOjIyvXkp3FklsfQUw-VYLlDLm7MwDc6Bpw6ISOPhaE5jrttdurocZeknOSxTMwZbuuHdNRRMCuaT3vNNI56jJD0XUQwCKiZsw)


# Receiving token

**Step 1.** Open the Crypto.com Onchain homepage. Click on the top left wallet icon.

![](https://lh3.googleusercontent.com/HCs-CsQ4CRZiqnep7jVxvy39fLwF5O_csQJ80n7hFRL5o02i2nj7SCr4lwih07j_T1sQ1N6DSIYzVfiyaqknHNyPetejzcEU6CjHcaTZZ9PME6dFEX8fFgnpbFcd75svDZK6fABTj5l9HRthS3WSqpfzt2VkMfWDEZQB73nvC_ofPsimZauqqNAzBQ)

**Step 2.** Select the token you want to receive from the sender.

![](https://lh5.googleusercontent.com/nRA3QkXTFQZI1ZRB88rCk5S5KG-9MguyFwn2gJK0olikCh7uZVdrhoL5oPDxSCr6TWcO1ZM5KSiJUK-6ZowAMr6mA8SYEY9PTeOaa-poqrApqswp_cxyCy0oPZp4HWSekAT5whloBcp5wPAMMYkWVwHYrk3l2FcXIu0xImtP8DllAHGlIE313Rf7Xw)

**Step 3.** Select the correct network. Click the blue icon to copy wallet address to your clipboard. You can also click “Share” to share the QR code and wallet address with the sender directly.

![](https://lh3.googleusercontent.com/zZc1zP0ob39PT3pJjDE-UlqtRf8xKCHKQsiHP3o-dxg4dT6Ob74Zs_P1UfoxjNC9j6thubNPCWwA7bLJPUgfnoap8G1C56Uy4a1bsKDHXYFzrcaJDMVBMd6kbUQY2mFcobi_cV0yZIk13NrOc5IiRvgNtjKa7QCZ79CzogoqfpJj6XI4EGCf1ZVPsg)


# Sending NFT

**Step 1.** Open the Crypto.com Onchain “NFT” page. Click on the NFT you want to send.

![](https://lh5.googleusercontent.com/sSuJfMJGNyibZjDviJ772YqHybnJFK6fl8K85WBM4r2n1rbP71bPlHJIWbNP4wGR5GDhWJld4sNl4DOq6KfXWQSaHi27YQN_wT4XoNd3D82fVxSWdYFR1vikIJ3HITxeJ8xUzNwojZxMYg_K6UnuoD3mJermnpFNKIztFEJsR6fbUIV12uc5P7XGBg)

**Step 2.** Click “Send” to proceed.

![](https://lh6.googleusercontent.com/Nq4z9abJkozrWWW-CUx826iC6hMudjdz-rsQCWm4vKuD9J7-4tVSWPoU1QlsjyCTlmCPhOn0woAs_7Tu9RlM3RgoZ8g4VDilcPBiaE2x74SUurqsg2ZUvKKwepiKQMGbOd0Bw-pN8L-K5G4rbKUK9zUFPzJy9c15NuPG-W9W2d9wfFz18e6Uql0UsA)

**Step 3.** There are two ways you can input the wallet you want to send the NFT to \
(a) Enter the Cronos ID domain \
(b) Enter the wallet address

**A. Enter the Cronos ID domain**

**A1.** Enter the Cronos ID domain you want to send the tokens to (e.g. domain123.cro). If it is a valid domain, the corresponding wallet address will be shown below the domain. Click “Next” to proceed.

![](https://lh6.googleusercontent.com/n8SSEeF7KiGuziDyLEkWV3n1nnG2p9P4AhUzlAbrvBkYd3kpBiVQTCtgmjDJDbIRY0PHecfUTYlXxIPh9h7OXdVd0Vk6p07ICjUxytipEH-L8A8tflded1lD3hnUfyJW47M_pqEVmpDFnFguJ3b4Ws4tNCzsfGmvOCMDpvwmuUZvnFFCwslFcXGIxQ)![](https://lh5.googleusercontent.com/Pntso2T73TGq19ARysG9GOo9YYVsNU7hjoaUIrkZ64-UWenb6sN_zLmMQVJPUO37qxkgQmdjetgTZhBpkGWNP__nhWtqu3a_OtJj6YLNYmej2jzjFosCIjdwxZezPeG4OBJNATso49Yxj3ZcA4xWFf8dMao485eIFeDVwtNNxBWwBRM1CPEF_2X4ZQ)

If you see the “Invalid Cronos ID” warning message, it means that the Cronos ID does not exist.

![](https://lh6.googleusercontent.com/alK0LsYaGn6V3sylUHxkLMV-XRaA85rFVBpsclmFos57VbenslufQgWbRj2Qc0yhKg21V6DjRodmFAc0UIHQK2BArEXvn8gcLzbFW6UxMtnnelRgTjSP4oppiZLZK19xZfqKi1RFiYJ2A1sMIhEr5OPHd0ON8DjwOtrHX47kNwcGnsgRMdycA8iWQg)

**A2.** You can also scan the QR code of the wallet you want to send to. If it is a valid QR code, the corresponding domain name and wallet address will be shown. Click “Next” to proceed.

![](https://lh5.googleusercontent.com/_ICmjZ8o4k5HwmV_t0b_LCv2OQZdfg1vVS2QcDFBhFLF1ZYVThfGuqHgtuXRbx0DVkyqpxc6yKvog1vWVrwhGsKev6STmN6V20y0EM2Zfj81vtLaDv0VmoUmgHWQiM0poYkCIaMtb9SHr7HQ--p5ZOnYQBttmoAPqh9cURUp1NKcYfNawSUXikVzCw)![](https://lh3.googleusercontent.com/LfpuLuNYIn_3uOXoFw2qnq-k6tarfROKaqvbGiHzgzpPwaeb-AVCc3Yzf2UtGIhong1nwo2irRKnoZg1zI7TCecf6GlyEIxFCrzQ85exYWZq5jw7qz3Mooz7izrhCch9PPTGvXRERZeir3hbLyyq3nmZSZOwLWLny9WHy8-jGxhsCUXSNk9R43kv7Q)

![](https://lh6.googleusercontent.com/M9ZsjKMjsuiHOA4QMUMeap170c3CeT4UEvkfoinj_DOw7weTdfYnCK6AP5PDsD4Nt6AKw9J7HUlykaiImOtHLwFbHg3yIfMhjQNbCQKE4PUkRI20PW_fTp6YDm2ZbJrxhKDw7_pY5KRQtoaTrBxSC_wMuj7ChFLnDZlSsHo7M5hhsSFjpktn6beuXA)

**B. Enter the wallet address**

**B1.** Enter the recipient’s wallet address. If it is a valid address, the corresponding Cronos ID domain will be shown below the address. Click “Next” to proceed.

![](https://lh4.googleusercontent.com/10qn7hr-AJ2L7f88isfxuLhQZvPfXI4nNt9QcaoU2PKPFMCPJ_pFFCBggqGKPFJmGVso76Yyhx86JNUgp5bifPLgiq66HZhI4L58dcZX0XMYS12g3sgN7OVwQ0esaQX3MhR5UVVUB35ym6VUNiE6P19a6s0RQ_0PeWVpEBy9PVz06pT1E0w4cVWMBg)![](https://lh3.googleusercontent.com/7cJT2CJMA2uXvZ76kNwkJciQx2J9N--TayheVjzKCIFxFsLud7zhySsVke_IdBmYy6DSh1Ndu2Y43y5jadPILIZ0IV6qAOP0uxUAObJjgO5kQR22oWxl1WjZBIR4vCZl0Mki9X4CeevXi96k2djqodRk5IU-F9RbeWvf-GF7-11nDbZtzF8L_DizfQ)

**B2.** You can also scan the QR code of the wallet you want to send to. If it is a valid QR code, the corresponding domain name and wallet address will be shown. Click “Next” to proceed.

![](https://lh6.googleusercontent.com/_sAf_Wxzug9zGmde5SFTrru9YwVEPAKA7Ey6XylfmeJYgDBhl8bWMqu3gHe_Ia_fTmgR9smTl-qZ1BEl2g94QQgAOQqUGOUtHYSi31o4d88jhsLARHOk68_44YP3XvMRfQjU65lGj8e5XAFYd8rZuVM5M9i0ueCJY0aCZ9jtCghAHIdHrRmWUJN7gA)![](https://lh3.googleusercontent.com/LfpuLuNYIn_3uOXoFw2qnq-k6tarfROKaqvbGiHzgzpPwaeb-AVCc3Yzf2UtGIhong1nwo2irRKnoZg1zI7TCecf6GlyEIxFCrzQ85exYWZq5jw7qz3Mooz7izrhCch9PPTGvXRERZeir3hbLyyq3nmZSZOwLWLny9WHy8-jGxhsCUXSNk9R43kv7Q)![](https://lh4.googleusercontent.com/7qoXIICB-jybJ_7DRDdDSBRDdmZo0aN2Lp6MBcKmLJVlkSPtgcQA78po1zb_MgWDYfUGm4l94mODsaoT6IR3rAIfaLXkBvfd6lGDwynXrYL3wYmx9TkoptOuj9xMCXCkoBtyMqHk_4erVlhlAd5BTUjHsePaJ-cqZDJy2IcToUmjPUmyK1JH7V3uZA)

**Step 4.** Double-check the transaction details. Click “Confirm to Send” to proceed.

![](https://lh5.googleusercontent.com/I6ztgwg1SQ3P2rAZYx5LRhHdiXAW1LAR5p3sCwIAaX7WpyufewolLj1QjgZeHJjpgOpbUopq-KAQ1FuBfqcRLNxPz51pw8rZM3dbXrFjBKz35fndP6bDY6kCBrL4T9ne_Ir3xeBKXM8WNpUF5QhaZzkDlTqNURijT4j5SaPfL2wnMx8KLXQHYEk1SA)


# Receiving NFT

**Step 1.** Open the Crypto.com Onchain “NFT” page. Click on the “Receive” icon.

![](https://lh6.googleusercontent.com/KcF11INJvMdtvbrzgLYmk_6Gqs8uramZ8OVh0drZD_8CbhImZFqAxS8eAAJBFiA66GO1czNZseAm5ZIOPbfkS9rJfByNZAHyz2h2unrrp0mlMGqFmjSgeRyTsbotubdLSweH72d0nyjOpg55XT2PqmtQlB6WhQBfZ9yXiZU8054mpm5jzzfs6QZ1Vg)

**Step 2.** Select the correct network. Click the blue icon to copy wallet address to your clipboard. You can also click “Share” to share the QR code and wallet address with the sender directly.

![](https://lh3.googleusercontent.com/zZc1zP0ob39PT3pJjDE-UlqtRf8xKCHKQsiHP3o-dxg4dT6Ob74Zs_P1UfoxjNC9j6thubNPCWwA7bLJPUgfnoap8G1C56Uy4a1bsKDHXYFzrcaJDMVBMd6kbUQY2mFcobi_cV0yZIk13NrOc5IiRvgNtjKa7QCZ79CzogoqfpJj6XI4EGCf1ZVPsg)


# For Crypto.com Onchain Extension (Chrome) users

If you are using **Crypto.com Onchian Extension (Chrome)**, read the user guide below to find out how to use the features:

1. [Setting wallet name](/using-cronos-id-on-crypto.com-onchain/for-crypto.com-onchain-extension-chrome-users/setting-wallet-name)
2. [Sending token](/using-cronos-id-on-crypto.com-onchain/for-crypto.com-onchain-extension-chrome-users/sending-token)
3. [Receiving token](/using-cronos-id-on-crypto.com-onchain/for-crypto.com-onchain-extension-chrome-users/receiving-token)


# Setting wallet name

## A. After minting a Cronos ID domain&#x20;

**Step 1.** After minting a Cronos ID domain on our website, you should receive a pop-up from your wallet. Click “Confirm” to set the domain as your wallet name.

<figure><img src="/files/GjxGl2pNV9s4dbv6I4n8" alt=""><figcaption></figcaption></figure>

**Step 2.** Check if your wallet name has been successfully updated to the Cronos ID domain.

<figure><img src="/files/xk13AtjFl4olqEJPlhYi" alt=""><figcaption></figcaption></figure>

## B. Editing wallet name&#x20;

**Step 1.** Open your Crypto.com Onchain extension. Click the “menu” icon.

<figure><img src="/files/lfO47er3F1l9w6BF2PkW" alt=""><figcaption></figcaption></figure>

**Step 2.** Click the “more” icon and select “Edit Name”

<figure><img src="/files/j7Cn4JueHsd3UbR7I4ky" alt=""><figcaption></figcaption></figure>

**Step 3.** (a) Under “Wallet Name”, type in the Cronos ID domain you want to use as your wallet name. \
(b) The latest domain minted will be shown in blue icon below. \
(c) Click “Confirm” to proceed.

<figure><img src="/files/5KacqoBzLEK9TM66X1mb" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Important Notes**

1. If you are the owner of the Cronos ID domain, it will be automatically suggested in blue icons. Please make sure that you are using the wallet address which has minted the domain.
2. If you are not the domain owner (e.g. johndoe.cro), you may still use the inputted name as your wallet name. This will function as the typical custom wallet name.
3. Wallet name has a character limit of 50. If your Cronos ID domain has more than 50 characters, it will not be used to replace your wallet name, as it exceeds the character limit. The domain name will be capped at the 50th character. However, you can still use the send/receive functions via Cronos ID.
4. If you wish to use other names as your wallet names, you can simply input the desired wallet name without selecting the suggested Cronos ID domain that you own.
   {% endhint %}

**Step 4.** Check if your wallet name has been successfully updated to the Cronos ID domain.

<figure><img src="/files/mqUwrUSduiI0dWn1CSX7" alt=""><figcaption></figcaption></figure>


# Sending token

**Step 1.** Open the Crypto.com Onchain extension. Click on the “Send” icon.

<figure><img src="/files/17m2kB7yYcLRhwscq0Ly" alt=""><figcaption></figcaption></figure>

**Step 2.** Select the token you want to send to another wallet.

<figure><img src="/files/6S1F5dEDWfYaJbBVEdwU" alt=""><figcaption></figcaption></figure>

**Step 3.** There are two ways you can input the wallet you want to send the token to:\
(a) Enter the Cronos ID domain \
(b) Enter the wallet address

**A. Enter the Cronos ID domain**

Enter the Cronos ID domain you want to send the tokens to (e.g. janedoe.cro). If it is a valid domain, the corresponding wallet address will be shown below the domain.

<figure><img src="/files/h4ZGuJ3VyUG0ZgTIFJss" alt=""><figcaption></figcaption></figure>

If you see the “Invalid Cronos ID” warning message, it means that the Cronos ID does not exist.

<figure><img src="/files/2P5ylLTaRZK1nRVcqq0V" alt=""><figcaption></figcaption></figure>

**B. Enter the wallet address**

Enter the recipient’s wallet address. If it is a valid address, the corresponding Cronos ID domain will be shown below the address.

<figure><img src="/files/Z6pHR7GqrlGA47mOawdy" alt=""><figcaption></figcaption></figure>

**Step 4.** Input the amount of token you want to send. Click “Next” to proceed.

<figure><img src="/files/3tyoMK1jMfPw734pbo9Y" alt=""><figcaption></figcaption></figure>

**Step 5.** Double-check the transaction details. Click “Confirm” to proceed.

<figure><img src="/files/dWVFnkwqWG6o1oqyRf2x" alt=""><figcaption></figcaption></figure>


# Receiving token

**Step 1.** Open the Crypto.com Onchain extension. Click on the “Receive” icon.

<figure><img src="/files/sUI15yPC5LfvPXZhjWCr" alt=""><figcaption></figcaption></figure>

**Step 2.** Select the token you want to receive from the sender.

<figure><img src="/files/zGSIZGNaNGibOiAlxA3n" alt=""><figcaption></figcaption></figure>

**Step 3.** Click the blue icon to copy wallet address to your clipboard and share with the sender. You can also share the QR code with the sender.

<figure><img src="/files/XwsD0IJLa0IfkZhdvtmH" alt=""><figcaption></figcaption></figure>


# CROID Quest Campaign

<figure><img src="/files/haaGj4cqDQ3E1eBs0J0X" alt=""><figcaption></figcaption></figure>

Cronos ID is partnering with Crypto.com Onchain to launch CROID Quest Campaign. Participants can win a share of **USD 5000 worth of $CROID** by completing the quests through the Crypto.com Onchain app!&#x20;

Read on to find out more details.

## How to Participate

1️⃣ Open Crypto.com Onchain app 📱

2️⃣ Click on the Cronos ID Quest banner

3️⃣ Select a quest

4️⃣ Click "Start Quest" and fulfill the requirements

[Terms & Conditions](#cronos-id-quest-campaign-terms-and-conditions) apply.

## Mission Period

May 4, 2023 07:00am UTC - May 10, 2023 06:59am UTC

## Cronos ID Quest Campaign Terms & Conditions

This “Cronos ID Quest” campaign (the “**Campaign**”) is offered and administered by Cronos ID, in partnership with the Crypto.com Onchain. The sponsor and organiser of this Campaign is Cronos ID, which administers all aspects of this Campaign.

To participate in the Campaign, you must satisfy the eligibility criteria and meet the requirements set out in these Official Rules for an Entry during the Entry Period. The “**Entry Period**” begins on May 4, 2023 07:00am UTC and ends May 10, 2023 06:59am UTC.

The Entry options are as follows, (each an “**Entry**” and together, the “**Entries**”):

**Quest 1:**

Mint a domain name containing at least 5 characters on cronosid.xyz and subscribe for at least 1 year during the Entry Period;

**Quest 2:**&#x20;

Mint a domain name containing 3-4 characters on cronosid.xyz and subscribe >=1 year;

**Quest 3:**&#x20;

Stake $CROID in a Cronos ID vault in one of the following amounts:

a) 1-month vault = $CROID 1,000&#x20;

b) 9-month vault = $CROID 630

c) 24-month vault = $CROID 380

d) 48-month vault = $CROID 130&#x20;

during the Entry Period.&#x20;

Only one Entry per wallet will be considered for Quest 3.

The Rewards are as listed below:

**Quest 1**

A proportionate share of US$2,500 worth of $CROID based on the number of “Quest 1” Entries, calculated as follows:

<figure><img src="/files/RnzV3BcZ78QMApNtjzL0" alt=""><figcaption></figcaption></figure>

**Quest 2**

A proportionate share of US$1,500 worth of $CROID based on the number of “Quest 2” Entries, calculated as follows:

<figure><img src="/files/ErJ8jWgynyEvAP89AK0a" alt=""><figcaption></figcaption></figure>

**Quest 3**

An equal share of US$1,000 worth of $CROID based on the number of “Quest 3” Entries, calculated as follows:

<figure><img src="/files/pAZeNR4AkjZ8U82KhiM5" alt=""><figcaption></figcaption></figure>

* This Cronos ID Quest Campaign (the “**Campaign**”) is offered by Cronos ID and facilitated by Crypto.com Onchain (former: Crypto.com DeFi Wallet).&#x20;
* Whilst the Campaign may be accessed through the Crypto.com Onchain, any trades and/or transactions for this Campaign are through Cronos ID, an independent dApp that is entirely separate from Crypto.com. You understand that your actions on Cronos ID are not governed by Crypto.com or its affiliates and that Crypto.com and its affiliates do not have oversight or control over any trades and/or transactions made on Cronos ID.
* In addition to the following terms, this Campaign is subject to the [Crypto.com Onchain Missions Terms & Conditions](https://crypto.com/document/defiwallet_external_rewards_tnc) (together with these terms, the “**Rules**”). By participating in the Campaign, each participant acknowledges and understands it shall comply with the Rules and the decisions of Cronos ID, which are final and binding in all respects.&#x20;
* Participation in the Campaign is strictly optional.
* Users should not undertake any trades that are executed through bad trading practices, including but not limited to, wash trades, false trading, self-dealing, or trades that display any attributes of market manipulation; and any users engaging in bad trading practices will be disqualified.
* Cronos ID will disqualify any entry from participants who do not meet the eligibility requirements as solely and absolutely determined by Cronos ID.
* You understand that any Rewards for this Campaign are provided by Cronos ID directly to your Crypto.com Onchain address only (including any imported wallet addresses).
* You agree that, if for any reason the rewards are not redeemed 7 days after the end of the rewards distribution period, you will have waived your right to the rewards, and any such rewards will be returned to Cronos ID.
* Cronos ID is not responsible for paying any additional fees, including gas fees, associated with the redemption or usage of the rewards.&#x20;
* Cronos ID reserves the right to cancel the Campaign or amend the Campaign mechanics or rules at any time at our sole discretion without notice to you.&#x20;
* In the event of any dispute, Cronos ID reserves the right to make all final decisions regarding the campaign.&#x20;


# FAQ

**1. What tokens are supported by this send/receive function integrated on Crypto.com Onchain?**

All crypto assets on Cronos are supported.

**2. If I don't have any Cronos ID domain, can I still use the send/receive functions?**

Yes. You will still be able to use the functions on Crypto.com Onchain by following the typical flow, in which you will have to type in sender/recipient's full wallet address.

**3. If I don't have any Cronos ID .cro domain, can I still use it as my wallet name (e.g. johndoe.cro)?**

Yes. It still functions as a custom wallet name. However, please note that changing your wallet name to .cro domains (e.g. johndoe.cro) does not mean that you have minted and become the owner of the .cro domains.

If you wish to mint a unique .cro domain to represent yourself and your wallet address, visit our website now!

**4. My Cronos ID domain has more than 50 characters, but the Crypto.com Onchain** **has a character limit of 50. Can I still use Cronos ID within the app?**

Wallet name has a character limit of 50. If your Cronos ID domain has more than 50 characters, it will be capped at the 50th character and the rest will not be included in your wallet name. The ".cro" suffix is included in the character count.

Example: This is your Cronos ID domain thisisyourcronosiddomainwithmorethan50characters.cro, and you wish to use this domain as your wallet name.

When you're editing your wallet name, your wallet name will become thisisyourcronosiddomainwithmorethan50characters.c

However, please note that this does not affect the rest of the send/receive functions done via Cronos ID as there is no character limit to the sender/recipient domain name. you can still use the send/receive functions using Cronos ID domains.

**5. Under “Domain Profile”, if I enter a CRO wallet address different from the one minting the domain, which wallet address will be used in the transactions?**&#x20;

The one you have manually put in under “Domain Profile”.

Example: John minted johndoe.cro using Wallet A, and inputted Wallet B under the Domain Profile. When Jane tries to send him tokens and enter his domain “johndoe.cro” on Crypto.com Onchain - Send page, the corresponding wallet address that she will be sending to becomes Wallet B.


# Team Wallets

| Category                            | Wallet Address                             | Remarks                                          |
| ----------------------------------- | ------------------------------------------ | ------------------------------------------------ |
| Team                                | 0x8550787Dc6a83796C6D6F12821724a802De197b3 | Linear release over 36 months                    |
| Integration and Partnerships        | 0x64DC6EfDa785C4a41205fbBaBe0CF5a0B7E7c9B8 | Unlocked upon Token Generation Event; No vesting |
| Liquidity Management and Incentives | 0x47e6F872beF48a99714674dB77771FF991275CA4 |                                                  |
| Community Treasury                  | 0x932c268997c1C5f99245030fb5Fd38dfa79a7e56 | No vesting                                       |
| Marketing                           | 0x8451b17e60707D8646280997c8f441281d9a711b | Unlocked upon Token Generation Event; No vesting |
| Staking Incentives                  | 0x93B709eE5FCdb89714a62Ec93CeF5D1eAC28D164 | No vesting                                       |
| Community Reserves                  | 0xe0e907bAA2Aa8E13D4D05b9f5664B7DCd62d4Ad5 | Unlocked upon Token Generation Event             |
| Hot Wallet                          | 0xE65C2FFE9a0FdE1EE2509D9db5d3f0015368d3E7 |                                                  |


# Tokens Supported

<table><thead><tr><th width="125">Token</th><th width="455">Address</th><th>Cronoscan Link</th></tr></thead><tbody><tr><td>WCRO</td><td><code>0x5C7F8A570d578ED84E63fdFA7b1eE72dEae1AE23</code></td><td><a href="https://cronoscan.com/token/0x5c7f8a570d578ed84e63fdfa7b1ee72deae1ae23">Link</a></td></tr><tr><td>CROID</td><td><code>0xCbF0ADeA24fd5f32c6e7f0474f0d1b94Ace4E2e7</code></td><td><a href="https://cronoscan.com/token/0xcbf0adea24fd5f32c6e7f0474f0d1b94ace4e2e7">Link</a></td></tr></tbody></table>


# Smart Contracts

<table><thead><tr><th width="164">Name</th><th width="186">Address</th><th width="264">Remarks</th><th>Cronoscan Link</th></tr></thead><tbody><tr><td>Blocklist</td><td><code>0x19386a818a7264376CFf6FfE235990e4D0fBAAE1</code></td><td>Contract that contains protected domains</td><td><a href="https://cronoscan.com/address/0x19386a818a7264376CFf6FfE235990e4D0fBAAE1">Link</a></td></tr><tr><td>CROIDRegistry</td><td><code>0x7F4C61116729d5b27E5f180062Fdfbf32E9283E5</code></td><td>Domain registry that stores domain registrant and resolver by node hash</td><td><a href="https://cronoscan.com/address/0x7F4C61116729d5b27E5f180062Fdfbf32E9283E5">Link</a></td></tr><tr><td>CROIDRoot</td><td><code>0xC9518AF576d13c0121DD5d160c3E87AB8f3E6944</code></td><td>Contract that manages top level domain names like .cro</td><td><a href="https://cronoscan.com/address/0xC9518AF576d13c0121DD5d160c3E87AB8f3E6944">Link</a></td></tr><tr><td>CROIDStablePriceOracle</td><td><code>0xc194BF150f458d6f04C135c9bA1FF0e4d10A6D61</code></td><td>Price oracle adaptor for $CROID/USD price pair</td><td><a href="https://cronoscan.com/address/0xc194BF150f458d6f04C135c9bA1FF0e4d10A6D61">Link</a></td></tr><tr><td>CROIDVault</td><td><code>0xb676b77ba1401D8B7e6e9D69081eDd203F3fC1cC</code></td><td>Staking vault contract for all pools</td><td><a href="https://cronoscan.com/address/0xb676b77ba1401D8B7e6e9D69081eDd203F3fC1cC">Link</a></td></tr><tr><td>CRORegistrar</td><td><code>0xf884647Dfa84696d9373F36eE413CCc48093F924</code></td><td>CRC-721 NFT contract, the owner of the .cro top level domain name</td><td><a href="https://cronoscan.com/address/0xf884647Dfa84696d9373F36eE413CCc48093F924">Link</a></td></tr><tr><td>CRORegistrarController</td><td><code>0x0cb56F1c023B7BA29ddd7B9e30283EE3DE2187D7</code></td><td>Controller contract to register .cro domain names with $CRO</td><td><a href="https://cronoscan.com/address/0x0cb56F1c023B7BA29ddd7B9e30283EE3DE2187D7">Link</a></td></tr><tr><td>CRORegistrarTokenController</td><td><code>0x85667Fc746a388f47518996B0724d1Ff2505D716</code></td><td>Controller contract to register .cro domain names with $CROID</td><td><a href="https://cronoscan.com/address/0x85667Fc746a388f47518996B0724d1Ff2505D716">Link</a></td></tr><tr><td>CROStablePriceOracle</td><td><code>0x905F5280Fc0B64FD1D3B0179F728BFB901426e5B</code></td><td>Price oracle adaptor for $CRO/USD price pair</td><td><a href="https://cronoscan.com/address/0x905F5280Fc0B64FD1D3B0179F728BFB901426e5B">Link</a></td></tr><tr><td>PublicResolver</td><td><code>0xDe2d3458424683B0a29d056db819a2A6b99C5bfD</code></td><td>Resolver contract that stores all resolving records set by users</td><td><a href="https://cronoscan.com/address/0xDe2d3458424683B0a29d056db819a2A6b99C5bfD">Link</a></td></tr><tr><td>RevenueDistributor</td><td><code>0x67F2Bf6b579820DE54Dc51270a8811482feD6Cf1</code></td><td>Contract that receives revenues from controller contracts and distributes according to rules set</td><td><a href="https://cronoscan.com/address/0x67F2Bf6b579820DE54Dc51270a8811482feD6Cf1">Link</a></td></tr><tr><td>ReverseRegistrar</td><td><code>0x82b28e5A2444d22Af36E1BB40CfD1B3E155D9486</code></td><td>Helper contract for reverse resolving addresses to names</td><td><a href="https://cronoscan.com/address/0x82b28e5A2444d22Af36E1BB40CfD1B3E155D9486">Link</a></td></tr><tr><td>TeamVesting</td><td><code>0x6d96830015F191a8a01D418195590AF2e86a813A</code></td><td>Vesting contract of the Cronos ID team</td><td><a href="https://cronoscan.com/address/0x6d96830015F191a8a01D418195590AF2e86a813A">Link</a></td></tr><tr><td>TokenDistributor</td><td><code>0xA79Eee7a9aF3790545Bf45B2F8b448423771393c</code></td><td>Contract that distributes incentive share of staking to staking vault contract</td><td><a href="https://cronoscan.com/address/0xA79Eee7a9aF3790545Bf45B2F8b448423771393c">Link</a></td></tr></tbody></table>


# Security

Our smart contracts were audited by SlowMist in Aug 2022. Please refer to the file below for details:

{% file src="/files/9vKZt8v7h7gtrGfC1y73" %}


# Github

Coming soon.


# Domain Integration

Cronos ID is a decentralised identity and communication layer built on Cronos.&#x20;

Starting with our **Domains**, every user will have a unique on-chain identity, allowing you to **find friends and exchange crypto with ease**. This will be followed by Notifications and Messaging Services which will be released in the future.

\
Read on to find out the use cases and how to integrate Cronos ID domains into your product!


# Use Cases

Why should I integrate Cronos ID Domains into my product?

Cronos ID Domain Service comprises two key components: Resolver and Reverse-Resolver.&#x20;

### #1 Resolver

Resolver helps **look up the wallet address by domain name**.&#x20;

Use Crypto.com Onchain as an example:

Integrating with our Resolver record allows users to simply type in the Cronos ID domain they wish to send funds to, and the app can get the associated wallet address directly.

Users no longer have to type in long and complex wallet addresses. They can now perform transactions with ease and efficiency.

<figure><img src="/files/HXxE5y9YRbCOvzYDHhT8" alt=""><figcaption></figcaption></figure>

### #2 Reverse-Resolver

Reverse-Resolver helps **display the Cronos ID domain in replacement of the owner’s wallet address**.&#x20;

Using [Minted](https://minted.network/) as an example:

Integrating our Reverse-Resolver record allows users to see their Cronos ID Domain instead of the long and complex wallet addresses.

This improves the user experiences of those who owns multiple wallet addresses, as a human-readable identifier will facilitate toggling between wallet addresses across integrated DApps.

<figure><img src="/files/pdlRkuBWmUGXH3sCvTwQ" alt=""><figcaption></figcaption></figure>


# Integrating using ethers.js

## How to integrate CROID domain using ethers.js?

If your product is currently using ether.js, you only need to create a new provider with network configuration and it will be able to retrieve the domain data from blockchain.&#x20;

```
// For testnet, instantiate a provider for name resovling.
provider = new ethers.providers.JsonRpcProvider('https://cronos-testnet-3.crypto.org:8545/', {
    chainId: 338,
    name: 'cronos-testnet',
    ensAddress: '0x16a23bFBcE9c53998c90201629E4cDB40B81B127'
})

// For mainnet, instantiate a provider for name resovling.
provider = new ethers.providers.JsonRpcProvider('https://evm.cronos.org', {
    chainId: 25,
    name: 'cronos-mainnet',
    ensAddress: '0x7F4C61116729d5b27E5f180062Fdfbf32E9283E5'
})


// Resolve the name to account address
const account = await provider.resolveName("abcde5.cro")

// Perform a reverse lookup of the address, and will get the name if configured
const name = await provider.lookupAddress("YOUR ACCOUNT ADDRESS")

// Get the address of resolver contract and return a resolver instance.
const resolver = await provider.getResolver("abcde5.cro")
```

Note:&#x20;

* To support resolving UTF-8 (including emoji) names, the version should be 5.7.0 at least.
* More information can be found in the [ethers.js docs](https://docs.ethers.org/v5/api/providers/provider/#Provider--ens-methods).

### Calling Contracts Programmatically

If your project does not use ethers.js lib, you can call contracts programmatically to resolve Cronos ID domains.

Two main contracts will be used to resolve names by calling functions on-chain. You can get their ABI and addresses in the following links:

1. CROIDRegistry: <https://cronoscan.com/address/0x7f4c61116729d5b27e5f180062fdfbf32e9283e5#code>
2. PublicResolver: <https://cronoscan.com/address/0xde2d3458424683b0a29d056db819a2a6b99c5bfd#code>

Below are some pared-down interfaces containing only the necessary methods:

```
interface CROID {
    function resolver(bytes32 node) public virtual view returns (Resolver);
}

interface IResolver {
    // resolve CronosID to address
    // the input parameter 'node' is namehash('yourname.cro')
    function addr(bytes32 node) public virtual view returns (address);
    
    // reverse resolve wallet address to a CronosID/name
    // the input parameter 'node' is namehash('myaddress.addr.reverse')
    function name(bytes32 node) external view returns (string memory);
}
```

For resolution, only the Resolver function in the CROIDRegistry contract is required; other methods permit looking up owners and updating Cronos ID domain from within a contract that owns a name.

With these definitions, Solidity developers can refer to the following code to resolve or reverse-resolve on-chain:

```
contract MyContract {
    // testnet
    CROID croid = CROID(0x16a23bFBcE9c53998c90201629E4cDB40B81B127);
    
    // mainnet
    CROID croid = CROID(0x7F4C61116729d5b27E5f180062Fdfbf32E9283E5);

    // resolving CROID name to account address
    function resolve(bytes32 node) public view returns(address) {
        IResolver resolver = croid.resolver(node);
        return resolver.addr(node);
    }
    
    // reverse resolving wallet address to CROID name
    function reverseResolve(bytes32 node) public view returns(string memory) {
        IResolver resolver = croid.resolver(node);
        return resolver.name(node);
    }
}
```

### Getting the hash of the domain

We call the hash of the domain 'node' hash, in bytes32 type. You can refer to [this doc](https://docs.ens.domains/contract-api-reference/name-processing) to understand how to get the hash. Please take note of the following:

> Before being hashed with namehash, names are first normalized, using a process called UTS-46 normalization. This ensures that upper- and lower-case names are treated equivalently, and that invalid characters are prohibited. Anything that hashes and resolves a name **must** first normalize it, to ensure that all users get a consistent view.

### Producing node hash off-chain

You can use ethers.js to produce node hash off-chain:

```
// Given CronosID 'abcde5.cro', the node hash for resolving is:
ethers.utils.namehash('abcde5.cro')
> 0x2fae4d5a9483b7ad67702f894906cfd6a4aeaa0311c7647a45a85a46337374ac

// Give wallet address '0xbb99F973EC0db97BB750e86D12aF971D161327cf'
// the node hash for reverse resovling is (Notice: without '0x' prefix):
ethers.utils.namehash('bb99F973EC0db97BB750e86D12aF971D161327cf.addr.reverse')
> 0xeb1d118d3779684850b598aeda6fc8558608c815a7aba8825a3cf52d3b82c262
```

### Getting node hash on-chain

For Solidity developers, you can get the node hash of domain or wallet address on-chain. You should add the following code to your contract:

```
// namehash('cro')
bytes32 constant CRO_NODE = 0x5dfacd0a0764eb7c9351dcd36f63cb5e2757014aa2592f976462be5c38ce9ca8;

function getNameNode(string memory name) public pure returns (bytes32) {
    return
        keccak256(
            abi.encodePacked(CRO_NODE, keccak256(abi.encodePacked(name)))
        );
}

// namehash('addr.reverse')
bytes32 constant ADDR_REVERSE_NODE = 0x91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e2;
bytes32 constant lookup = 0x3031323334353637383961626364656600000000000000000000000000000000;

function getAddressNode(address addr) public pure returns (bytes32) {
    return
        keccak256(
            abi.encodePacked(ADDR_REVERSE_NODE, sha3HexAddress(addr))
        );
}

// An optimised function to compute the sha3 of the lower-case 
// hexadecimal representation of an Cronos address.
function sha3HexAddress(address addr) private pure returns (bytes32 ret) {
    assembly {
        for {
            let i := 40
        } gt(i, 0) {

        } {
            i := sub(i, 1)
            mstore8(i, byte(and(addr, 0xf), lookup))
            addr := div(addr, 0x10)
            i := sub(i, 1)
            mstore8(i, byte(and(addr, 0xf), lookup))
            addr := div(addr, 0x10)
        }

        ret := keccak256(0, 40)
    }
}
```

The input parameter ‘name', is the Cronos ID domain without the '.cro’ suffix. e.g. if your Cronos ID domain is "abcde5.cro", the input should be "abcde5".

## Who should I contact for support?

If you have any questions about the integration with Cronos ID Domain, drop us a message on our [Discord server](https://discord.com/invite/cronosid) and we will get in touch with you!

For developers using other programming languages, we can provide language-specific examples to guide you through the integration.


# Integrating using our SDK

## How to access our domain SDK?

You can access the package at this link: <https://www.npmjs.com/package/@cronosid/croidjs?activeTab=code>

## How to set up the Domain SDK?

Before you can begin interacting with Cronos ID, you will need to obtain a reference to the CROID registry.

<pre><code>import CROID, { getCroidAddress } from '@cronosid/croidjs'



<a data-footnote-ref href="#user-content-fn-1">const</a> croid = new CROID({ provider, croidAddress: getCroidAddress('25') }) // Cronos Mainnet Chain Id

croid.name('cronos.cro').getAddress() // 0x123
</code></pre>

### **Resolving a name to a Cronos address**

```javascript
var address = await croid.name('cronos.cro').getAddress();
```

### Reverse Resolution

While 'regular' resolution involves mapping from a name to an address, reverse resolution maps from an address back to a name. Cronos ID supports reverse resolution to allow applications to display Cronos ID names in place of hexadecimal addresses.

```javascript
const address = '0x1234...';
let croidName = null;
({ name: croidName } = await croid.getName(address))
// Check to be sure the reverse record is correct. skip check if the name is null
if(croidName == null || address != await croid.name(croidName).getAddress()) {
  croidName = null;
}
```

### Exports

```
default - CROID
getCroidAddress
getResolverContract
getCROIDContract
namehash
labelhash
```

### CROID Interface

```typescript
name(name: String) => Name
```

* Returns a Name Object, that allows you to make record queries.

```typescript
resolver(address: CronosAddress) => Resolver
```

* Returns a Resolver Object, allowing you to query names from this specific resolver. Most useful when querying a different resolver that is different than is currently recorded on the registry. E.g. migrating to a new resolver

```typescript
async getName(address: CronosAddress) => Promise<Name>
```

* Returns the reverse record for a particular Cronos address.

### Name Interface

```ts
async getOwner() => Promise<CronosAddress>
```

* Returns the owner/controller for the current CROID name.

```ts
async getResolver() => Promise<CronosAddress>
```

* Returns the resolver for the current CROID name.

```ts
async getAddress(coinId: String) => Promise<CronosAddress>
```

* Returns the address for the current CROID name for the coinId provided.

```ts
async getContent() => Promise<ContentHash>
```

* Returns the contentHash for the current CROID name.

```ts
async getText(key: String) => Promise<String>
```

* Returns the text record for a given key for the current CROID name.

### Resolver Interface

```ts
address
```

* Static property that returns current resolver address

```ts
name(name) => Name
```

* Returns a Name Object that hardcodes the resolver

## Who should I contact for support?

If you have any questions about the integration with Cronos ID Domain, drop us a message on our [Discord server](https://discord.com/invite/cronosid) and we will get in touch with you!

[^1]:


# Notification Integration

The Cronos ID notification service is a B2B service that helps connect the Dapps/Communities and their users. DApp owners can integrate this service to send notifications to their users seamlessly within their DApp and via Telegram.

#### How It Works <a href="#how-it-works" id="how-it-works"></a>

1. [﻿﻿﻿Submit Your DApp info: ](https://cronos-id.gitbook.io/draft/~/changes/QoLaoJEMUmu9t2FRdx3a/publishing/notification-integration/submit-your-dapp-info)To integrate with our notification service, you need to fill in this form, and we will provide the channel id and API key for dapp BE to send notifications to your contact email.
2. [﻿﻿﻿Send notification via our API:](https://cronos-id.gitbook.io/draft/~/changes/QoLaoJEMUmu9t2FRdx3a/publishing/notification-integration/send-notification-via-our-api) A REST API endpoint will be exposed by CNS for dApps to send notifications to our platform.
3. ﻿﻿﻿[Integrating using our SDK:](https://cronos-id.gitbook.io/draft/~/changes/QoLaoJEMUmu9t2FRdx3a/publishing/notification-integration/integrating-using-our-sdk) When a relevant event occurs within the DApp, our service triggers a notification, delivering it to the user's preferred external communication channel (e.g., email, SMS, push notification).

<figure><img src="/files/LcBAA6RPd6Upai0A8REz" alt=""><figcaption></figcaption></figure>

#### Use Case <a href="#use-case" id="use-case"></a>

In-app notification

<figure><img src="/files/WCkm4wephz9YM6FCVd52" alt=""><figcaption><p>Kaching in-app notification</p></figcaption></figure>

Telegram notification

<figure><img src="/files/jojPQeuR9l4cSJem2PSx" alt=""><figcaption><p>Fulcrom Finance Telegram notification</p></figcaption></figure>


# Submit Your DApp Info

To integrate with our notification service, you need to provide essential information through this [form](https://docs.google.com/forms/d/e/1FAIpQLScxHjngqfRufyiD5X1DM9zFyAI91ixDdVOoyc-AXw00bBrs1g/viewform)

After the profile is created, CNS will provide the channel id and API key for DApp BE to send notifications to your contact email.


# Send notifications via our API

Owners of decentralized apps (dApps) want to send notifications to their users, to be displayed in the FE of their respective dApps.

CNS will be used as a platform for dApps to send notifications and CNS will be responsible for streaming these notifications to the FE of their dApps.

A REST API endpoint will be exposed by CNS for dApps to send notifications to our platform.

### Design & Implementation <a href="#design-and-implementation" id="design-and-implementation"></a>

We would have separate endpoints for different media platforms, for example, `POST /channel/{channelId}/message` for in-app notifications and `POST /channel/{channelId}/message/telegram` for telegram notifications. Most of the fields in the request body are identical for both endpoints, except platform-specific fields, such as `parse_mode` for telegram notifications.

### REST API endpoint design <a href="#rest-api-endpoint-design" id="rest-api-endpoint-design"></a>

**`POST /channel/{channelId}/message` - Send in-app notification**

| Request Component | Name              | Type      | Description                                                                                                 | isRequired |
| ----------------- | ----------------- | --------- | ----------------------------------------------------------------------------------------------------------- | ---------- |
| Request Headers   | CNS-Api-Key       | String    | API Key required to call the API                                                                            | Yes        |
| Path Variable     | channelId         | String    | Channel ID associated with the dApp                                                                         | Yes        |
| Request Body      | delivery\_type    | String    | `BROADCAST` - send to all users, `UNICAST` - send to selected user                                          | Yes        |
|                   | receiver\_address | String    | Can be omitted if `delivery_type` is `BROADCAST`, else wallet address of recipient                          | No/Yes     |
|                   | title             | String    | Title of the notification (max 1024 chars), no restrictions on the format                                   | Yes        |
|                   | body              | String    | Body of the notification (max 4096 chars), no restrictions on the format                                    | Yes        |
|                   | type              | String    | Type the notification (max 50 chars)                                                                        | Yes        |
|                   | chain\_id         | Int       | Chain ID of the notification to send                                                                        | Yes        |
|                   | event\_timestamp  | Timestamp | Timestamp when the notification is triggered on DApp, if not set it'll be the time when CNS got the request | No         |

**Note**:

Infra setup will be in place to restrict API access to selected dApps using the API (Kaching would be our first dApp partner). API Authentication using mechanisms like API keys might be considered in the future but not supported in MVP.

**Example Request**:

Copy

```
POST /channel/0xb9cb77b5d2f63ee09708f9f3419d6c1613cc53c99ef529385e7dd8c8c7001912/message
CNS-Api-Key: xxx
{
  "delivery_type": "BROADCAST",
  "title": "New feature",
  "body": "New feature xx is out, go and check it out at https://www.yyy.com",
  "type": "SYSTEM",
  "chain_id": 25,
  "event_timestamp": "2022-01-01T00:00:00Z"
}
```

Copy

```
POST /channel/0xb9cb77b5d2f63ee09708f9f3419d6c1613cc53c99ef529385e7dd8c8c7001912/message
CNS-Api-Key: xxx
{
  "delivery_type": "UNICAST",
  "receiver_address": "0xd6e1125158e3d83fa0e795b3a957ba5b2ca52d02",
  "title": "Pending rewards",
  "body": "You have some pending rewards, go and claim it before it is too late",
  "type": "REWARDS",
  "chain_id": 25,
  "event_timestamp": "2022-01-01T00:00:00Z"
}
```

**Response Body**:

* No JSON response body needed to be returned
* Successful response will return status code 204

**`POST /channel/{channelId}/message/telegram` - Send telegram notification**

| Request Component | Name              | Type   | Description                                                                                                                                                                      | isRequired |
| ----------------- | ----------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- |
| Request Headers   | CNS-Api-Key       | String | API Key required to call the API                                                                                                                                                 | Yes        |
| Path Variable     | channelId         | String | Channel ID associated with the dApp                                                                                                                                              | Yes        |
| Request Body      | delivery\_type    | String | `BROADCAST` - send to all users, `UNICAST` - send to selected user                                                                                                               | Yes        |
|                   | receiver\_address | String | Can be omitted if `delivery_type` is `BROADCAST`, else wallet address of recipient                                                                                               | No/Yes     |
|                   | body              | String | Body of the notification (max 4096 chars), no restriction on the format                                                                                                          | Yes        |
|                   | type              | String | Type the notification (max 50 chars)                                                                                                                                             | Yes        |
|                   | parse\_mode       | String | Content [format options](https://core.telegram.org/bots/api#formatting-options) of Telegram, available options are: MarkdownV2, HTML, Markdown, by default there'll be no format | No         |

**Example Request**:

Copy

```
POST /channel/0xb9cb77b5d2f63ee09708f9f3419d6c1613cc53c99ef529385e7dd8c8c7001912/message/telegram
CNS-Api-Key: xxx
{
  "delivery_type": "BROADCAST",
  "body": "<strong>New feature xx is out</strong>. Go and check it out at https://www.yyy.com",
  "type": "SYSTEM",
  "parse_mode": "HTML"
}
```

Copy

```
POST /channel/0xb9cb77b5d2f63ee09708f9f3419d6c1613cc53c99ef529385e7dd8c8c7001912/message/telegram
CNS-Api-Key: xxx
{
  "delivery_type": "UNICAST",
  "receiver_address": "0xd6e1125158e3d83fa0e795b3a957ba5b2ca52d02",
  "body": "You have some pending rewards, go and claim it before it is too late",
  "type": "REWARDS"
}
```

**Response Body**:

* No JSON response body needed to be returned
* A successful response will return status code 204


# Integrating using our SDK

As the CNS server will push the alerts and notifications to the wallet address and the DApp will need to integrate the compound React Component packages for showing the notifications to users, we need to provide an easy out-of-the-box React Component for DApp to integrate and save their time focusing on the DApp features. And we should give the information on the React Component's workflow.

## Install Package

```
// npm
npm install @cronosid/react-bell

// yarn
yarn add @cronosid/react-bell

// pnpm
pnpm add @cronosid/react-bell
```

## Integration

<details>

<summary>Parameters</summary>

To use the CNS notification service must need to connect the `Wallet` and `Sign a signature` to log in the CNS service. The user must sign a signature and set the header for the later API requests. If the user doesn't connect to a wallet and log in, you cannot do anything with CNS notifications, it is just a connect wallet tip.

So it will need to pass the

`userAddress` : identify the user and send notifications to this user

`signMessage` : the function to sign a message for CNS service and sign a message for subscribing or unsubscribing a channel

And there will be a `env` and `chainId`

`env` : `Production` or `Staging`

`chainId` : the number of the blockchain, a decimal number

Please know that the `env` is relative to the `chainId`. Eg. if the `env` is `Production` and the `chainId` is the `MainNet chainId`, if the `env` is `Staging` and the `chainId` is the `TestNet chainId`.

If you wanna the user bind the Telegram bot to receive the notifications, should pass `tgInfo`

`tgInfo` : it is an object variable<br>

```html
{
  botName: "your_tg_bot_name",
  cornerRadius: 8,
}
```

***Note:** If don't pass the tgInfo then it will don't have the tg bind flow in the SDK.*

The `botName` is your tg bot name and the `cornerRadius` is the Telegram Login Widget button corner radius style.

And there is a `isMobile` param, which is the something customize desktop and mobile style param. `true` or `false`, it is an optional param, the default is `false`.

</details>

<details>

<summary>Optional and Mandatory Parameters</summary>

The mandatory parameters contain: `userAddress`, `signMessage`, `env` and `chainId`.

The optional parameters contain: `tgInfo` and `isMobile`.

### Code Example

The demo code includes three component `Notification`, `Entry` and `Modal`.

The `Notification` component

```jsx
import { NotifiContext, SignMethod } from "@cronosid/react-bell";

import { currentWallet } from "wallet";

import { Entry, Modal } from ".";

export const Notification = () => {
  const provider = currentWallet.useProvider(); // your provider
  const account = currentWallet.useAccount(); // your account

  return (
    <NotifiContext
      channelId="0xa2c4605bff800d59e680da598c53ee8a4ce02f66495932608478f6dd63c44a70"
      env="Staging"
      chainId={338}
      userAddress={account ?? ""}
      signMessage={async (message: string, signMethod: SignMethod) => {
        const signer = provider?.getSigner();
        const signerAddress = await signer?.getAddress();
        const params = [signerAddress, message];
        const signature: string = await provider?.send(signMethod, params);
        return signature;
      }}
      // tgInfo={{
      //   botName: "your_tg_bot_name",
      //   cornerRadius: 20,
      // }}
      // isMobile={false}
    >
      <Entry />
      <Modal />
    </NotifiContext>
  );
};
```

The `Entry` component

```jsx
import { BellButton } from "@cronosid/react-bell";

export const Entry = () => {
  return <BellButton />;
};
```

The `Modal` component

```jsx
import {
  useNotifiContext,
  NotificationContainer,
  Header,
  CloseButton,
  NotificationContent,
  ErrorTipContent,
  ConnectWallet,
  WalletIcon,
  ConnectWalletTip,
  ConnectWalletButton,
  Login,
  Subscribe,
  Loading,
  MessageContent,
  MessageStatus,
  NoMessage,
  MessageList,
  Footer,
} from "@cronosid/react-bell";

export const Modal = () => {
  const { isMobile, modalVisible } = useNotifiContext();

  return (
    <>
      {modalVisible ? (
        <div
          // add a className for the Modal
          className="cns"
          style={{
            maxWidth: isMobile ? undefined : "368px",
            width: "100%",
            height: isMobile ? "100vh" : "640px",
            position: isMobile ? "fixed" : "absolute",
            left: 0,
            top: isMobile ? 0 : "110px",
          }}
        >
          <NotificationContainer>
            <Header />
            <CloseButton />
            <NotificationContent>
              <ErrorTipContent />
              <ConnectWallet>
                <WalletIcon />
                <ConnectWalletTip />
                <ConnectWalletButton
                  connectWallet={async () => {
                    // the function to connect the wallet
                    await currentWallet.connect();
                  }}
                />
              </ConnectWallet>
              <Login />
              <Subscribe />
              <Loading />
              <MessageContent>
                {/* the tg bind tip, if don't pass the tgInfo, it doesn't display even you pass it */}
                {/* <ConnectTgTip /> */}
                <MessageStatus />
                <NoMessage />
                <MessageList />
              </MessageContent>
            </NotificationContent>
            <Footer />
          </NotificationContainer>
        </div>
      ) : null}
    </>
  );
};
```

*The above 👆 demo is the simple version and does not require customization. If wanna customize the SDK, please go ahead.*

</details>

## Customization

The SDK is the Compound React Components, we can combine the components at will.

So we can do the customized component as we want. If a component has a `children` props, we can pass the `component` or `string` to customize it. If we don't pass  `children` it will have the `default component`.

<details>

<summary>Customization Demos</summary>

Customize the `BellButton` Icon

```jsx
<BellButton>
  <YourIcon />
</BellButton>
```

Customize the `CloseButton` Icon

```jsx
<CloseButton>
  <YourIcon />
</CloseButton>
```

Customize the `ErrorTipContent` tip

```jsx
<ErrorTipContent>
  <YourErrorTip />
</ErrorTipContent>
```

Customize the `NoMessage` tip

```jsx
<NoMessage>
  <NoMessageTip>
    <Text color={"#999"}>No notifications yet</Text>
  </NoMessageTip>
</NoMessage>
```

Customize the `ConnectWallet` tip

```jsx
<ConnectWallet>
  <YourWalletIcon />
  <YourConnectWalletTip />
  {/* or */}
  {/* <ConnectWalletTip>
    Your connect tip here
  </ConnectWalletTip> */}
  <ConnectWalletButton
    connectWallet={async () => {
      // the function to connect the wallet
      await currentWallet.connect();
    }}
  />
</ConnectWallet>
```

Customize the `MessageStatus` tip.

Here we just wanna customize a `SettingIcon` but we should pass all the `children` components. If we don't do that, the missing component won't display.

```jsx
<MessageStatus>
  <HasUnreadMessages />
  <NoUnreadMessages />
  {/* the setting icon */}
  <SettingButton>
    <SettingIcon />
  </SettingButton>
</MessageStatus>
```

Customize the success tip for `ConnectTgTip` and `TgBind`, please know we should pass all the `children` component.

```jsx
const tgBindBtn = (
  <>
    <TgBindButton>
      <TgUnbindTip />
      <TgBindSuccess>
        <YourTgBoundTip>
          <Icon />
          <Text ml={"2px"}>Account Bound</Text>
        </YourTgBoundTip>
      </TgBindSuccess>
      <TgBindErrorTip />
    </TgBindButton>
  </>
);

<ConnectTgTip>
  <ConnectTgTipBody>
    <ConnectTgTipTitle />
    {tgBindBtn}
  </ConnectTgTipBody>
  <ConnectTgTipCloseIcon />
</ConnectTgTip>;
```

```jsx
<TgBind>
  <TgBindTitle />
  <TgBindBody>
    <TgBindInfo>
      <TgBindSubTitle />
      <TgBindDescription />
    </TgBindInfo>
    <TgBindButtonAlignRight>{tgBindBtn}</TgBindButtonAlignRight>
  </TgBindBody>
</TgBind>
```

</details>

<details>

<summary>Code Example</summary>

There is a full demo for customization

```jsx
import {
  Box,
  Drawer,
  DrawerContent,
  DrawerOverlay,
  Text,
} from "@chakra-ui/react";
import {
  Header,
  Footer,
  CloseButton,
  MessageStatus,
  ConnectTgTip,
  ConnectTgTipBody,
  ConnectTgTipTitle,
  ConnectTgTipCloseIcon,
  SettingButton,
  MessageContent,
  NotificationContainer,
  NotificationContent,
  NoMessage,
  ConnectWallet,
  Login,
  Subscribe,
  MessageList,
  useNotifiContext,
  Loading,
  SettingContent,
  TgBind,
  TgBindTitle,
  TgBindBody,
  TgBindInfo,
  TgBindSubTitle,
  TgBindDescription,
  TgBindButtonAlignRight,
  TgBindButton,
  TgUnbindTip,
  TgBindErrorTip,
  TgBindSuccess,
  UnsubscribeChannel,
  ErrorTipContent,
  ConnectWalletTip,
  ConnectWalletButton,
  LoginButton,
  LoginTip,
  MessagesPlaceholder,
  SubscribeAction,
  SubscribeTip,
  SubscribeButton,
  NoMessageTip,
  HasUnreadMessages,
  NoUnreadMessages,
  LoadingAnimation,
  LoadingTip,
} from "@cronosid/react-bell";
import type { Message } from "@cronosid/react-bell";

const tgBindBtn = (
  <>
    <TgBindButton>
      <TgUnbindTip />
      <TgBindSuccess>
        <YourTgBoundTip>
          <Icon />
          <Text ml={"2px"}>Account Bound</Text>
        </YourTgBoundTip>
      </TgBindSuccess>
      <TgBindErrorTip />
    </TgBindButton>
  </>
);

export const ModalDrawer = () => {
  const { isMobile, modalVisible, setModalVisible } = useNotifiContext();

  return (
    <>
      <Drawer
        isOpen={modalVisible}
        onClose={() => setModalVisible(false)}
        placement="right"
        autoFocus={false}
        size={"sm"}
      >
        <DrawerOverlay />
        <DrawerContent>
          <div
            // add a className
            className="cns"
            style={{
              width: "100%",
              height: "100vh",
            }}
          >
            <NotificationContainer>
              <Header />
              <CloseButton>
                <YourIcon />
              </CloseButton>
              <NotificationContent>
                <ErrorTipContent>
                  <YourErrorTip />
                </ErrorTipContent>
                <ConnectWallet>
                  {/* <YourWalletIcon /> */}
                  <ConnectWalletTip />
                  <ConnectWalletButton
                    connectWallet={async () => {
                      await currentWallet.connect();
                    }}
                  />
                </ConnectWallet>
                <Login>
                  {/* <YourBellIcon /> */}
                  <LoginTip>
                    Please review and accept the{" "}
                    <Text as="span" color={"#00D5D1"}>
                      <Link
                        href={
                          "https://docs.cronosid.xyz/what-is-cronos-id/cronos-id-notifications/terms-and-conditions"
                        }
                        target="_blank"
                        rel="noopener noreferrer"
                      >
                        terms
                      </Link>{" "}
                    </Text>
                    to start using our notification service.
                  </LoginTip>
                  <LoginButton>Accept the Terms</LoginButton>
                </Login>
                <Subscribe>
                  <MessagesPlaceholder>
                    {[0, 1, 2].map((i) => (
                      <Box px={4} py={2} key={i}>
                        a lot of messages
                      </Box>
                    ))}
                  </MessagesPlaceholder>
                  <SubscribeAction>
                    <SubscribeTip>
                      Subscribe to this channel so you don&apos;t miss important
                      updates of the protocol, your trades, and more!
                    </SubscribeTip>
                    <SubscribeButton />
                  </SubscribeAction>
                </Subscribe>
                <Loading>
                  {/* if wanna customize the loading content, pass the conte to it, if don't just ignore it */}
                  {/*
                    <YourLoadingAnimation />
                    <YourLoadingTip />
                  */}
                </Loading>
                <MessageContent>
                  <ConnectTgTip>
                    <ConnectTgTipBody>
                      <ConnectTgTipTitle />
                      {tgBindBtn}
                    </ConnectTgTipBody>
                    <ConnectTgTipCloseIcon />
                  </ConnectTgTip>
                  <MessageStatus>
                    <HasUnreadMessages />
                    <NoUnreadMessages />
                    {/* the setting icon */}
                    <SettingButton>
                      <SettingIcon />
                    </SettingButton>
                  </MessageStatus>
                  <NoMessage>
                    <NoMessageTip>
                      <Text color={"#999"}>No notifications yet</Text>
                    </NoMessageTip>
                  </NoMessage>
                  <MessageList
                    renderItem={(
                      message: Message,
                      index?: number,
                      messageLength?: number
                    ) => {
                      return (
                        <div
                          key={message.id}
                          style={{
                            padding: "10px",
                            backgroundColor: "#11101B",
                            borderRadius: "12px",
                            margin: "8px 0",
                          }}
                        >
                          <p>{message.is_read ? "" : "unread"}</p>
                          <h3>{message.title}</h3>
                          <p>{message.body}</p>
                        </div>
                      );
                    }}
                  />
                </MessageContent>
                <SettingContent>
                  <TgBind>
                    <TgBindTitle />
                    <TgBindBody>
                      <TgBindInfo>
                        <TgBindSubTitle />
                        <TgBindDescription />
                      </TgBindInfo>
                      <TgBindButtonAlignRight>
                        {tgBindBtn}
                      </TgBindButtonAlignRight>
                    </TgBindBody>
                  </TgBind>
                  <UnsubscribeChannel />
                </SettingContent>
              </NotificationContent>
              <Footer />
            </NotificationContainer>
          </div>
        </DrawerContent>
      </Drawer>
    </>
  );
};
```

</details>

## The CSS Style Override

If you wanna change the UI design and the styling should be consistent with your current UI. We can change the CSS style by overriding the CSS.

Importing a CSS file into your code

<details>

<summary>CSS Style Example</summary>

```css
.cns .cns-container {
  background: #0c0c0c;
  border-radius: 0;
}
.cns .header {
  padding: 20px 16px;
}
.cns .header h4 {
  font-size: 16px;
  line-height: 24px;
}
.cns .footer {
  background: #0c0c0c;
}

.cns .subscribe-action {
  background: linear-gradient(
    180deg,
    rgba(12, 12, 12, 0.7) 0%,
    rgba(12, 12, 12, 1) 100%
  );
  padding-bottom: 50%;
}

.cns .btn {
  min-width: auto;
  background: #574be8;
  border-radius: 8px;
  padding: 16px 12px;
}
.cns .btn:not(:disabled):hover {
  background: #fff;
  color: #000;
}

.cns .message-status {
  margin-top: 8px;
  background-color: #11101b;
  border: none;
  border-radius: 12px;
  font-size: 12px;
}
.cns .message-status .mark-all-read {
  color: #8c82ff;
  font-size: 14px;
}

.cns .connect-tg-tip-title {
  font-size: 12px;
  font-weight: 600;
}
.cns .tg-bind-success,
.cns .tg-bind-error,
.cns .tg-unbind-tip {
  font-weight: 400;
  font-size: 12px;
}
.cns .tg-bind-success {
  color: #38de8c;
}
.cns .tg-unbind-tip {
  color: #ff9d00;
}

.cns .login-tip {
  margin-top: 8px;
}

.cns .connect-tg-tip {
  border-bottom: none;
  background: linear-gradient(175deg, #0c0c0c 0%, #243952 49%, #318b7b 120%);
}

.cns .setting-tg-bind-title {
  font-size: 16px;
}
.cns .setting-tg-bind-subtitle {
  font-size: 14px;
}
.cns .setting-tg-bind-description {
  font-size: 11px;
  font-weight: 300;
  color: #ededed;
}
.cns .notify-types h4 {
  font-size: 16px;
}
.cns .notify-types p {
  font-size: 14px;
  color: #ededed;
}

.cns .unsubscribe-button {
  color: #ee316a;
  font-size: 14px;
  padding-top: 20px;
}
.cns .footer {
  /* border-top: none; */
}
```

*The above 👆 just a demo, you can change it apply to your current UI design. The components have a `className` you can choose a component to override it.*

</details>


# Metadata Service Guide

Cronos ID has a Metadata Service, which allows third party NFT platforms and wallets to integrate and display the information of Cronos IDs.

## Service Endpoints

Production Environment `https://metadata.cronosid.xyz/`

## Contracts

* Testnet, CRORegistrar: `0x8101623b9F430C5A3fa808619456B8d98ba5A894`
* Mainnet, CRORegistrar: `0xf884647Dfa84696d9373F36eE413CCc48093F924`

## NFT Metadata API

### Request path:

```
/{networkName}/{contractAddress}/{tokenId}
```

### Parameters:

* **Network**: Name of the chain to query for (mainnet | testnet)
* **contractAddress**: Accepts contractAddress of the NFT which is represented by the tokenId
* **tokenId**: Accepts labelhash of Cronos ID domain in both hex and int format

```
// how to get tokenId for the name 'abcde5.cro' (javascript)
const label = "abcde5".toLowerCase()
ethers.utils.keccak256(ethers.utils.toUtf8Bytes(label))
// or, same
ethers.utils.id(label)
```

### Response Body:

```
{
  "is_normalized": true,
  "name": "to-the-moon.cro",
  "description": "to-the-moon.cro, an Cronos ID name.",
  "attributes": [
    {
      "trait_type": "Created Date",
      "display_type": "date",
      "value": 1661226007000
    },
    { "trait_type": "Length", "display_type": "number", "value": 11 },
    { "trait_type": "Segment Length", "display_type": "number", "value": 11 },
    {
      "trait_type": "Character Set",
      "display_type": "string",
      "value": "mixed"
    },
    {
      "trait_type": "Registration Date",
      "display_type": "date",
      "value": 1661226007000
    },
    {
      "trait_type": "Expiration Date",
      "display_type": "date",
      "value": 1976795527000
    }
  ],
  "name_length": 11,
  "segment_length": 11,
  "url": "https://cronosid.xyz/name/register/?label=to-the-moon.cro",
  "version": 0,
  "background_image": "https://metadata.cronosid.xyz/testnet/avatar/to-the-moon.cro",
  "image": "https://metadata.cronosid.xyz/testnet/0x8101623b9F430C5A3fa808619456B8d98ba5A894/0x486a8f914586140c471814a37061a30c5fc9585adca7fa5ed0636305c46d73fc/image",
  "image_url": "https://metadata.cronosid.xyz/testnet/0x8101623b9F430C5A3fa808619456B8d98ba5A894/0x486a8f914586140c471814a37061a30c5fc9585adca7fa5ed0636305c46d73fc/image"
}
```

### Response Fields:

| Field             | Description                                                                                                                                              |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name              | name of the domain                                                                                                                                       |
| description       | Short description about the name. It contains a warning message if the domain is not comprised of numbers and letters.                                   |
| is\_normalized    | Whether the domain is normalized. It must follow [UTS46](http://unicode.org/reports/tr46/) for normaliztion and validation.                              |
| attributes        | <p>A list of attributes, including:<br>- Created Date<br>- Length<br>- Segment Length<br>- Character Set<br>- Registration Date<br>- Expiration Date</p> |
| name\_length      | Character length of the domain                                                                                                                           |
| segment\_length   | Segment length of the domain. Local-sensitive text segmentation obtained by Intl.Segmenter.                                                              |
| url               | A URL to the domain's profile page on Cronos ID website                                                                                                  |
| version           | Cronos ID NFT version                                                                                                                                    |
| background\_image | Origin URL of the avatar image                                                                                                                           |
| image             | URL of the domain image to display (recommended)                                                                                                         |
| image\_url        | URL of the NFT image                                                                                                                                     |

## NFT Metadata Image API

### Request Path:

```
/{networkName}/{contractAddress}/{tokenId}/image
```

### Parameters:

* **network**: Name of the chain to query for (mainnet | testnet)
* **contactAddress**: Accepts contractAddress of the NFT which is represented by the tokenId
* **tokenId**: Accepts labelhash of Cronos ID domain in both hex and int format

### Response Body:

A SVG image file

* the content-type is ‘image/svg+xml’.


# Protected Domains Policy

## What are Protected Domains?&#x20;

Protected Domains are words closely associated with well-known entities, products, groups or individuals. The list is set to reserve domains for some of the most recognizable terms globally. Meanwhile, these domains are protected from public minting to prevent brand confusion and potential fraud and phishing.

We will do our best to maintain and expand the list of Protected Domains, which comes from a combination of global top companies, prominent brands, persons, protocols, and terms in the Web3 space. However, with a large and expanding list of global firms and individuals, there may be some domains that may not be covered. We make no promise or guarantee as to the contents of the list of Protected Domains. While we cannot guarantee that all official trade names have already been protected by our protocol, we will endeavour to cover as many as possible, provided that any disputes, conflicts, or ambiguity shall be resolved by the Cronos ID team in its sole and absolute discretion. Please note that once a domain is minted by a user, it is not in the control of the team and cannot be retracted or transferred to other users or wallets by the team.

## Why are Protected Domains important?&#x20;

Reserving these domains will be important as we look to onboard the next wave of firms to Web3. We want to encourage companies to embrace on-chain domains and provide continuity to the brands that these firms have built in Web2. While it is impossible to cover every brand that exists, we want to start by protecting top brands early on to prevent exploitation and fraud as we continue to expand the list.

## How can I check if my brand falls under Protected Domains?&#x20;

If you want to check the domain availability, please visit <https://cronosid.xyz/> and search the desired domain using the search bar. You will see the message below if the domain is considered a Protected Domain.

<figure><img src="/files/G24klj2E2qkrJ1M8QhAf" alt=""><figcaption></figcaption></figure>

If you need further assistance on this issue, please reach out to us on [Discord](https://discord.com/invite/FeFu22ny6A).


# Community Guidelines

We created Cronos ID to allow users to create their own unique non-fungible token (NFT) domain names, with the aim of providing users a Web3 “identity” living on Cronos Chain.

These Community Guidelines are intended as a framework for all who visit and use the services on Cronos ID to nurture an open, welcoming, diverse, inclusive and healthy community for anyone and everyone.

We want to foster a fair and transparent platform for all our members, including our Cronos ID team, who may register their own domain names but will not be given special privileges or advantages and are precluded from using any material non-public information for their personal benefit, advantage or purposes on Cronos ID.

Cronos ID is a decentralised application (dApp) and as such, we have no control nor do we assume any liability over domains that have been minted as NFTs, paid for by users or otherwise distributed as digital assets. Transactions through the dApp are irreversible, and once distributed, these domains are irretrievable and any transferred NFTs are irrecoverable.

Here’s what you can expect from us:

* We will take appropriate and fair corrective action in response to any behaviour or content in relation to Cronos ID domains, the Cronos ID team and community, or on Cronos ID social channels that we deem inappropriate, threatening, offensive or harmful, including issuing warnings and suspending/banning accounts, and taking measures to remove, edit, or reject any content that is not aligned with these Community Guidelines.
* We have established a protected list to reserve domains for some of the most recognisable brands or trade names globally that are closely associated with well known entities, products or individuals. This is to mitigate against the risk of fraud, phishing, impersonation or other types of brand confusion, if someone other than those who own these brands or trade names were to get a hold of these domains.
* We believe it is important to increase the adoption of Web3 by encouraging and helping these widely known brands embrace this new era of Web3.
* With an expanding list of growing global firms, brands and individuals, there may be some brands or trade names that are not covered by our protected list. Please visit our [Protected Domains Policy](/extras/protected-domains-policy) for more information.
* Domain names, including those tokenised as NFTs, are not intended as investments. We make absolutely no promise, representation or guarantee as to the value of these domain names. NFTs may or may not be regulated in your jurisdiction, and you are solely responsible for any tax or other legal implications associated with the receipt, ownership, purchase or sale of any domain names.

As a community member of Cronos ID, here’s what you can/can’t do:

**Please do:**

* Express yourself by locking down the perfect domain name!&#x20;
* Respect third party rights, including copyright, publicity rights and intellectual property rights.

**Please do not:**

* Create domains that may cause brand confusion or promote suicide or self-harm, spread or incite hate or violence, endorse terrorism, hate groups or criminal behaviour, or include profanity or graphic language or overtly sexual language.
* Create domains that may degrade other persons or brands, or misrepresent another person’s or brand’s involvement.
* Impersonate another person, commit identity theft, dox another person without their explicit permission.
* Use our social channels in an unacceptable, offensive or hurtful way, including attempting to phish or hack any other users or members; spreading any misleading or false information or FUD; using profane, hateful, threatening, discriminatory, graphic or otherwise offensive language; or spamming or mistreating members of the Cronos ID team or community.
* Do anything illegal, fraudulent, unethical or hateful.


# Cronos Labs Incubation

We are immensely proud to be part of the Cronos Labs incubation program.

Being part of this program, we have received tremendous support from the Crypto.com an Cronos ecosystem. We are able to access a mass retail audience that the Crypto.com ecosystem offers, and work with our partners to provide an end-to-end seamless experience in the Web3 space.


# Risk Disclosure

The Cronos ID (“Protocol”) is a set of smart contracts made available by Cronos ID on a voluntary, “as-is” and “as-available” basis. It is not a service of any kind and you should not rely on Cronos ID to assist you to evaluate the Protocol, assess its fitness for any purpose or comply with any requirements. You assume all risks arising from interactions with the Protocol. Cronos ID is not liable for any claim, damages or other liability, whether in contract, tort or under any other theory of liability, arising from, out of or in connection with the Protocol.

There are several risks when using the Protocol. These risks include inherent risks associated with the use of a virtual platform, the decentralized nature of the platform, and participating in virtual asset transactions. Risks include, without limitation:&#x20;

* Partial or total loss of virtual assets;&#x20;
* Collapse in liquidity with respect to virtual assets; changes incompatibility of a virtual asset with the Protocol, changes in the smart contracts;&#x20;
* Regulatory uncertainty and government action against virtual assets;&#x20;
* Extreme volatility;&#x20;
* Possibility of market misconduct by participants including for example market manipulation, trading on the basis of non-public information, and front running;&#x20;
* Delays in or complete failure of virtual asset transactions being confirmed;&#x20;
* Counterparty risk;&#x20;
* Faults, defects, hacks, exploits, errors, or unforeseen circumstances occurring in respect of the platform or the technologies that the platform depends on;&#x20;
* Loss of private keys;&#x20;
* and Attacks on the platform or the technologies that the platform depends on including for example distributed denial of service, sybil attacks, phishing, social engineering, hacking, smurfing, malware, double spending, majority-mining, consensus-based or other mining attacks, misinformation campaigns, forks, and spoofing.

This list of potential risks is not exhaustive and is not intended to capture the extent of all possible risks. In the event of any of the above occurring, you may lose your virtual assets entirely. Participants should consider all of the above and assess the nature of, and their own appetite for relevant risks independently and consult their advisers before making any decisions in participating in the Protocol. USERS WILL BE RESPONSIBLE FOR THEIR OWN RISK.


