-
-
Home page of DOAP, see how many DOAPs have been claimed
-
Easily create a new event and start distributing DOAPs
-
Discover events distributing DOAPs
-
View of the "Claim Page" for an event, shows list of owners and admin operations if you are the owner
-
Candid UI for the event canister
-
Candid UI for the DIP721 canister
Inspiration
POAP stands for Proof of Attendance Protocol. POAP is a popular protocol on the Ethereum blockchain. Communities and event organizers use POAP to distribute tokens (NFTs) to their users and community members.
POAPs are usually distributed to members attending a webinar, or an in-person event. In the community, it's perceived as a way to say "I was there", helping you build some street credibility for your engagement with a project.
DOAPs have the same goal but for the Internet Computer community.
What it does
As a Community organizer, you can create your own event, just by providing a few details like name, description, url, image/logo. Once the event is created, you will be provided a link you share with your community and members can start claim your DOAPs.
A DOAP can only be claimed once per event per identity.
You can setup different rules to distribute your DOAPs:
- open: anybody can claim one
- secret: you need a secret code to be able to claim, the secret code is usually shared via discord, email, or orally during the vent
- timelock: add timebounds so you can only claim the DOAP during a certain period of time.
DOAP also provides a directory with all the events distributing DOAPs, so you could cross-pollinate communities and discover new ones.
Event creators have access to simple Admin tools to pause the distribution of DOAPs whenever they want.
How we built it
We use two canisters: one to manage the events creation, listing, update And one to distribute the DOAPs based on the DIP721 specification for NFTs on IC.
Backend is built with Motoko Frontend in React
Authentication and identity are powered by Stoic library.
Challenges we ran into
Understanding and Adapting DIP721 spec to our usecase
Using Motoko playground to test functions
Make two canisters talk to each other
Test locally connecting to a wallet. We originally tried Plug but it didn't work locally so we switched to Stoic.
Communicating between frontend and backend, formulating the requests
Accomplishments that we're proud of
it works 💪 Smart contract is intelligible One more app on the IC
What we learned
Complex Motoko More React
What's next for Doap
This is just the beginning for DOAP
To serve the IC community we have so many things to improve:
- being able to upload logo/asset directly to IC
- more admin functionalities (manual airdrop, airdrop from list, set upper limit for number of DOAPs)
- QR code for easily sharing claim link
Built With
- motoko
- react
- stoic
Log in or sign up for Devpost to join the conversation.