E

ENSBoundBadges (EBB)

ENS bound, non-transferrable on-chain badges with Push notifications

Created on 4th December 2022

E

ENSBoundBadges (EBB)

ENS bound, non-transferrable on-chain badges with Push notifications

The problem ENSBoundBadges (EBB) solves

On-chain Authenticity and reputation. Though there are some projects trying to develop NFT based certificates and stuff, there's always a question of authenticity since they can be transferred and traded in a secondary market. And also many of them are centralized. As Vitalik said, "If someone is looking at your POAP, they are not interested in whether or not you paid someone who attended some event. They are interested in whether or not you personally attended that event. Proposals to put certificates (eg. driver's licenses, university degrees, proof of age) on-chain face a similar problem: they would be much less valuable if someone who doesn't meet the condition themselves could just go buy one from someone who does."

If you could simply trade such certificates, it doesn’t have any value at all. So it should be bound and non-transferrable to build authenticity around the token. The more authentic you are, the more reputation you acquire. Given the pace of development of metaverse, there needs to be somesort of on-chain reputation system that should be able to find how genuine/authentic a person is without revealing personal info. I think that ENS is growing rapidly at the same time, so literally everyone’s on-chain identity will be owning an ENS domain. So what I’m trying to build is a trustless, open and decentralized system that helps everyone to issue on-chain, non-transferrable, ERC721 compatible badges tied to the ENS domain.
It has infinite amount of usecases, For example, Devfolio could use ENSBound Badges to issue their privileged limited edition badge for best performers in the hackathon. So the user's with the badge issued by Devfolio on thier ENS domain will provide increased reputation and trust without the need for sharing their personal info. Hence ideas like ENSBound badges can be used to prevent fraud or unauthorized use of digital assets, by ensuring that the badge is only valid for the user to whom it was issued to.

Challenges I ran into

Challenges:

I spent a lot of time in planning and ideation. So I was left with minimal amount of time for development, So time management was quite challenging.
I wanted to implement more features like automated tests, on-chain badge rendering, CLI tool for interacting with the contracts.. But I had very less time for development.
Integrating push protocol via Subgraph was quite challenging as it was unstable on the testnet. Sometimes I receive the notifications and sometimes not so it took a lot of time from me.
As a solo hacker, it was a bit challenging to work on multiple aspects of the project like integrating ENS, subgraph, push protocol, deployment, documentation in such a small window.

Bugs:
I think I found a bug in the

_mint()

method of

ENSBoundBadge

contract, which always sets the

balanceOf[owner]

to

1

. Then I realized that there might be scenarios that a single account can have multiple badges from same collection for example, if a company issues badges for all the problems that’s solved in a hackathon and if a person solves 5 out of 10 problems, then the company can issue 5 badges to the user. I resolved it by adding a flag called

canMintMultiple

in the initializer.

Tracks Applied (3)

Push Protocol

Push Protocol

ENS

ENS

The Graph

The Graph

Discussion

Builders also viewed

See more projects on Devfolio