Inspiration

Many Web3 projects need to create an access list for beta only invites or exclusive drops and content. Any project can use this app and contract to create such a list and then leverage it in their app via a cross contract call to the contract #composability.

What it does

Create a list, add inviters (optional), add incentive (N) for inviters (optional), have open registration or require invite link. Invitees register after doing some PoW and submit a small TX to cover storage.

How we built it

Learned Rust and NEAR SDK from several examples in the NEAR ecosystem (docs, near-examples, near-apps). Tests written in JS and deploy to testnet. React app + PicoCSS. Shareable links with previews made possible by deploying near-api-helper

Challenges we ran into

Thinking about how to minimize sybil attacks. Used a basic PoW, but not sure if this is enough. Also invite links are not very challenging. Could add a password in the future.

Accomplishments that we're proud of

Optimized gas by storing all account_id as u64 with 1 mapping inside contract, then was able to add many more "cheap" mappings using u64 -> other_var. Enumeration methods are nice and clean because of pagination methods over maps and sets of generic types. App is clean and simple to use. Shareable links with previews made possible by deploying near-api-helper.

What we learned

Near SDK RS. Rust Generics. Deployment pipeline for testing against testnet. Lots about configuration and app <> contract comms.

What's next for On the List

Mainnet deployment. More features like passwords. Ability to delete lists and reclaim storage to list owner (little bit of profit). Open to feedback and suggestions.

Must be signed in to experience app fully

Please sign in with testnet wallet and click on some lists, maybe make 1 yourself?

Built With

Share this project:

Updates