Kraken

Kraken

Kraken is a permissionless Web3 domain service, that enables individuals, communities and organizations (DAOs) to create a personalized top level domain.

The problem Kraken solves

With our decentralized domain service, users can create and manage their own digital identity, including personal and contact information, social media profiles and more. This information is stored on the Mantle Testnet, ensuring that it cannot be altered or deleted by unauthorized users.

Kraken users can register custom top level domains such as ".mantle" or ".devfolio", and access a minting page where they can mint their choice domain name or share with other community members (example "adekoya.mantle" or "seun.devfolio").

The service issues human readable addresses according to the TLD selection. These addresses serve as identification and can be used to receive and send tokens & NFTs.

Kraken offers two kind of Domains.

  • A Standard (transferable) domain. - The standard domains can be used in community whitelisting, and can be transfered after use. This domain is an ERC 721 NFT and can also be sold on an Nft Marketplace, just like ENS Domains.

  • An SBT Domain. - The SBT Domain leverages the concept of a Soul Bound Token, is bound to the wallet and cannot be transfered. The metadata can only be updated.
    They can be used to create decentralized identities for schools, IDs & proof of humanity (PoH) in DAOs

Challenges I ran into

  • Learning how to save an svg inside of a smart contract
  • I kept running into gas estimation errors when trying to mint some test domains I created. I was able to fix it by setting the right parameters for the contracts. This took a while, lol.
  • Rainbowkit/Wagmi didn't support the mantle testnet by default, so I had to revisit the docs and create a custom connector for the chain.
  • I've built the smart contracts to the development level and deployed to the Mantle Testnet, but I still have to complete the UI side to implement other features like "updating domain metadata, change domain ownership".

Discussion