AxLabs / grantshares

GrantShares Program 🌱
https://grantshares.io
Apache License 2.0
22 stars 3 forks source link

NEO.coupons - create coupons topped up with any NEP-17 token #112

Closed grantshares-dapp[bot] closed 3 months ago

grantshares-dapp[bot] commented 4 months ago

Abstract

NEO.coupons is a platform where people can easily create coupons topped up with any NEP-17 token available to share with family and friends who are less familiar with (the NEO) blockchain (ecosystem).

Proposal Information

Description

The late majority is not in favor of NFT’s, NFI's 😉, decentralized storage or other 'fancy' words, simply because they’re at step 1: get in touch with cryptocurrencies. Although it becomes easier and easier to ‘get in touch’ with crypto, there is still the hurdle of (fiat) onboarding, in some occasions KYC and taking other extra steps.

Luckily there is a thing where the late majority is familiar with: vouchers and coupons. Just imagine; easily give a voucher as a gift to people. No onboarding for anyone, all you need is an email address and NEO.coupons; load the coupon and go.

The idea started quite simple. I deployed Schrute Bucks; intended as a motivational tool to create user growth within the NEO ecosystem. Although it sounds like “another meme coin” it's an attention token. $SCHRUTE is not a goal, but a means to a goal: motivate people to get in touch with NEO. While doing this I thought: Why not do this for any NEP-17 (and other NEP standards) token available?

The solution: NEO.coupons: Go to NEO.coupons, create a coupon, top it up with a NEP-17 token (or GAS or NEO) of your choice, hit create and there you go: a nice coupon to give to family and friends. Of course the coupon should be easily redeemable as well.

See a simple prototype: https://www.figma.com/proto/lljbiPWzoI8QLgk40SExxG/NEO.coupons?page-id=0%3A1&type=design&node-id=0-450&viewport=-4052%2C329%2C0.48&t=QPbVVLRB8MyTLIaZ-1&scaling=min-zoom&starting-point-node-id=0%3A450&mode=design

Motivation

Currently I create wallets myself, fund them with some $GAS or $NEO, but let’s be honest: for most people receiving 10,000 $SCHRUTE sounds better than receiving 0.05 $GAS. In a light-hearted way someone (receiver) can get in contact with the NEO ecosystem, without costing too much for the person (marketeer) who gives the present.

Goals

Deliverables & Roadmap

Estimated costs

Duration

After approval of the proposal

Milestones

To keep the project tangible; NEO.coupons is divided into multiple milestones

Milestone 1: Allow user to connect to a NEO wallet

What’s the upside of the NEO ecosystem? Indeed; you don’t have to learn new programming languages to integrate NEO into ‘anything’. To show the capabilities of the developers; integrate a wallet connection into a dummy website. This will proof the developers are

Guess what: Milestone 1 is done 🎉

Milestone 2: Create new coupon

Milestone 3: Redeem coupon

Milestone 4: Support for other NEO wallets

Milestone 5: UI

Milestone 6: Tutorial creation

Deliverables Verifiability

The project is a success when:

This is verifiable when above statements can be executed on NEO.coupons.

Next to the above on (by-)weekly base a demo of the progress and learnings will be given. Up to the Grantshare members how they want to consume the demo (presentation, blog, video).

Budget Plan

About You / Your Organization

Short-Bio of the team members

Let me present in alphabetical order:

🙋 Abderrahmane: Developer with ±2 years of experience. Worked for multiple international clients.

🙋‍♀️ Aishat Akinyemi: Fullstack developer with +4 years experience, 2 years of it in blockchain development. Participated and won global web3 hackathons

🍕 Hastalapizza; Product builder with +10 years in product development. Main driver of NEO.coupons.

🙋‍♂️ Lautaro Bachman: Developer with ±3 years of experience. Worked for multiple clients, amongst others in the financial sector.

Portfolio of Projects / Past Experience

You want to know more? Happy to talk on NEO Discord 👍


Proposal Info :clipboard:

[ {
  "target_contract" : "0x6276c1e3a68280bc6c9c00df755fb691be1162ef",
  "method" : "releaseTokens",
  "params" : [ {
    "type" : "Hash160",
    "value" : "ef4073a0f2b305a38ec4050e4d3d28bc40ea63f5"
  }, {
    "type" : "Hash160",
    "value" : "80e4a4fb3a9e349d5c306b40e0e26cd57488fbde"
  }, {
    "type" : "Integer",
    "value" : "560"
  } ],
  "call_flags" : 15
} ]

👇 React with 👍 if you liked it, or 👎 if you think this proposal can be enhanced!

deanragnarok commented 4 months ago

I've long been a proponent of some sort of voucher system. I have several concepts on paper but lack the time to execute on them, so would like to see something exist.

I think if you want to get support on this proposal, you'll need to find someone to help you flesh out the development side of things first, and then come back with a development plan and budget with that in place. Otherwise, you may get into a scenario where you find you cannot deliver within your expected budget or that there are roadblocks you could not have anticipated without the specialized knowledge. So my advice is to find a developer to team up with and do a bit of R&D together 👍

csmuller commented 4 months ago

Hey @67MxexQ68, I like your proposal. A voucher app seems to be a good idea for incentivizing entry into the Neo ecosystem. Also, it's a properly-sized project for GrantShares and has a "tangible" output.

I agree with @deanragnarok. Having a candidate for the engineering work before voting on this proposal would make its chance of acceptance much higher.

67MxexQ68 commented 4 months ago

Hi @csmuller @deanragnarok Thank you both for the feedback! Currently I have 2 developers in the pipeline for the job. As you probably can imagine it's not the case the market is overflown with developers with experience with the NEO ecosystem. 😉

I currently pay the 'junior' to read up the documentation, with the other one I am in talks to create a PoC. Will keep you posted!

grantshares-dapp[bot] commented 4 months ago

🚨 This proposal was edited by the proposer.

67MxexQ68 commented 4 months ago

Hi @deanragnarok @csmuller,

Let me present you, not 1, not 2, but 3 developers! Yes, this sounds like a Tell Sell commercial, but it's simply the truth 🤷‍♂️ You can find the new additions in the proposal. @deanragnarok If you like, I would love to hear your 'concepts on paper' as well.

Upcoming week I will try to sub the costs for the development into the milestones (waiting for one more response from one of the devs).

grantshares-dapp[bot] commented 4 months ago

🚨 This proposal was edited by the proposer.

67MxexQ68 commented 4 months ago

I just added the final cost estimate! 👍

Based on feedback from developers and talks with "beta users", I added a 6th milestone.

I would like to hear if the proposal is ready to be put on-chain. 😁

grantshares-dapp[bot] commented 4 months ago

🚨 This proposal was edited by the proposer.

csmuller commented 4 months ago

Hey @67MxexQ68, good to see you found devs that are willing to take part in the project 😃

Now that there are four people in the team, do you have a specific allocation of work to the devs in mind? I imagine that it would be hard to offer the devs fair renumeration if everyone is just developing "all over the place". For example, from what I can tell, @Aishat-Akinyemi would probably work on the smart contracts.

And something else: where will the code "live"? We would like to follow the development.

67MxexQ68 commented 4 months ago

Hi @csmuller, good question:

I asked all developers if they're comfortable with working on 'everything' of course with a distinction of primary and secondary skills. Your guess is right.

As Lautaro and Abderrahmane are both in the beginning of their career (in blockchain), I paid them both to read up the documentation and create a PoC's to get a better understanding. Their primary goal is as described as above, but I hope 'next time' they are capable of 'easily' creating smart contract themselves by having already a track record. "Attract more users: bring NEO to the attention of people who are not yet familiar with NEO or crypto at all" also counts for developers 🙂

Last but not least. Where code will be live is up for discussion with the team, but I can imagine our staging will be on something like testnet.neo.coupons and productions on... neo.coupons. Apart from the functional (the goal) progress, I guess you also want to see some technical progress, for this Github or Gitlab does the trick. Execution will probably be scrumban tracked in Jira or Trello.

We can deliver demo's: As noted in the proposal it's up to the Grantshare members how they want to consume the demo (presentation, blog, video).

Please let me know if you have anymore questions 🙂

csmuller commented 4 months ago

@67MxexQ68 Personally, I'm willing to endorse this proposal, but, first i'll have to reach consensus with my team internally.

67MxexQ68 commented 4 months ago

@csmuller That sounds awesome 😁 Looking forward to the outcome. If there is something I need to elaborate on, let me know. 👍

csmuller commented 4 months ago

@67MxexQ68 We're having a problem, and that problem is that we still don't have a stable coin... NEO price went up considerably and so did the requested grant size. I think that is going to be an issue in voting. The only two options in my view right now are, either reduce the requested amount according to the change in NEO price, or wait to see if the situation calms down and the price cools down. If you are willing to reduce the requested amount, i'm willing to endorse the proposal right after the change.

grantshares-dapp[bot] commented 4 months ago

🚨 This proposal was edited by the proposer.

67MxexQ68 commented 4 months ago

@csmuller Thanks for the message and feedback! 😄

Hehehe, I assume that if $NEO price goes down, I cannot increase the proposal? 😜 All jokes aside, it is indeed a problem. I would suggest as an update for creating a proposal to ask to just add the USD or EUR costs, this will keep the cost calculation clear as well.

Anyways, you're right: I calculated with 1 NEO = 13 USD, I will calculate now with 1 NEO = 17,75 USD (so ~*0,73)

Regarding the grant size change:

Please let me know if I did any miscalculations (I am quite sure I did not). If everything is green lighted, I think I need to put the proposal on-chain?

EDIT: Updated hosting + UXUI costs (as these where calculated with 1 NEO = 11 USD) 😅😇

grantshares-dapp[bot] commented 4 months ago

🚨 This proposal was edited by the proposer.

csmuller commented 4 months ago

@67MxexQ68 Looks good to me. You can put it on chain.

grantshares-dapp[bot] commented 4 months ago

⛓ This proposal was created on-chain! 🔥🚀🎉

➡️ Now, waiting for a GrantShares Member to endorse it... ⏰


🚨IMPORTANT🚨 Pay attention to the following deadlines:


General info:

grantshares-dapp[bot] commented 4 months ago

⛓ This proposal was endorsed on-chain! 📄🔑

➡️ Voting period starts NOW!


🚨IMPORTANT🚨 Pay attention to the following deadlines:


General info:

67MxexQ68 commented 3 months ago

@csmuller Thanks for the endorsement! 🙂

Question: I noticed Pixudi already received 3 votes, but this proposal 0 (apart from the 1 abstained), although they're put on-chain on the same day. I am just curious how the process goes here (e.g. could it be nobody votes and the proposal ends up in 'nothing')? Do I need to reach out to the voters or just wait?

roman-khimov commented 3 months ago
  1. Will there be any fee for creating a coupon?
  2. If couponized tokens are stored in a contract, how redeeming is going to proceed, what links xyz@example.com receiver and wallet that's going to receive these tokens?
  3. What happens to coupons that were never redeemed (is there any timeout for this)?
  4. Won't we have a problem with onboarding because redeeming still requires some wallet?
67MxexQ68 commented 3 months ago

@roman-khimov Thanks for the questions!

  1. Yes, the standard NEO system fees, including the fees for transferring the couponized tokens to the receiver (so the receiver does not have to pay anything). For now there are no 'for profit' fees for NEO.coupons.
  2. 'Nothing'. We thought about a more easy solution: A receiver fills in coupon id (+ code) » fills out a NEO address » the tokens will be send to given address. (To avoid spam attacks we could add an in between layer where a user first needs to create an account before the redeem process can be executed.)
  3. I discussed the same with @Aishat-Akinyemi. We could opt for a time-out and send the tokens back. If we find out this is an actual problem (e.g. we see a lot of unredeemed tokens), we can implement a expiration date and send tokens back to the sender. If this is a must have, please let me know.
  4. Yes, this 'hurdle' will exist. I thought about a solution like Delion presented for IOTA a couple of years ago, but concluded this is not a must have for a first version of NEO.coupons. If it turns out this is a need, it could a feature for a future iteration.
csmuller commented 3 months ago

@67MxexQ68, if nobody votes, or rather if the proposal doesn't reach the quorum - currently min 4 votes - then the proposal is automatically rejected. But, not reaching the quorum would be a sad statement from GrantShares.

You can def also reach out to the voting members that have not been active on this proposal or did not vote yet: NeoNewsToday @deanragnarok COZ @lllwvlvwlll NeoResearch @vncoelho NGD @steven1227 Red4Sec @belane

vncoelho commented 3 months ago

Asap we will positively vote to suport as well.

roman-khimov commented 3 months ago

For now there are no 'for profit' fees for NEO.coupons.

Do you think this is sustainable for the project? There is some on-going maintenance cost for it, do you have any idea how it's gonna be paid for?

A receiver fills in coupon id (+ code) » fills out a NEO address » the tokens will be send to given address

I'm mostly concerned about security of the scheme here, either you have some super-power that is able to do any transfers from contract (which can be done in various ways, btw) or you have something coupon-specific that can be verified at the contract, or maybe something else.

NeoDashboard commented 3 months ago

I'm curious about the implementation as I started something like this but never finished due to lack of time. Is there an off-chain part or is It using some zero knowledge proof?

67MxexQ68 commented 3 months ago

Hey @roman-khimov, thanks for the questions again.

Do you think this is sustainable for the project?

For sure not. First I want to validate if this a solution to an actual problem (aka getting people using the product). Then we can start with validating any ideas of income. If we validated actual usage, we could implement a small GAS fee for maintenance (so people pay for the solution), think about a sponsorship (that covers the hosting) or ask for another grant like Puxidi or Frank Coin 😇

Personally I see NEO.coupons as marketing costs, the 'profit' is an easy marketing channel for people already aware of NEO to let new faces easily get in touch with the NEO ecosystem.

I'm mostly concerned about security of the scheme

Me too. Here I already had multiple discussions with the devs about this; what's the right balance between security/blockchain characteristics and user friendliness? As shared in the proposal we will share progress and will testnet around to tackle this challenge.

67MxexQ68 commented 3 months ago

Hi @NeoDashboard, thanks for the question.

Creating, redeeming and retrieving coupons will be on-chain.

roman-khimov commented 3 months ago

The idea is somewhat appealing (if we're to forget about wallets), but I'm concerned about team ability to deliver and solve all of the associated problems, so :-1: here.

67MxexQ68 commented 3 months ago

Hey @roman-khimov That's a pity, but either way thanks for the feedback!

In my opinion with Aishat we have someone with (more than) enough experience and Lautaro and Abderrahmane showed there willingness to learn about NEO by working on Milestone 1 (and proved they understand).

Can you elaborate why you think the team is not capable?

grantshares-dapp[bot] commented 3 months ago

🚨 Outcome: this proposal was rejected! 🚫


General info:

EdgeDLT commented 3 months ago

We decided to vote against this proposal in its current form, though we hope it doesn't discourage you too much. We always appreciate new onboarding tools, but share some of the technical concerns of some of our other members. Primarily, if the solution still requires the user to have a wallet, what good is the coupon?

Some of your comments have left us a bit confused as to what you are actually intending to build. The way I see it, there are two ways to build a coupon system. The first is basic, just pre-loaded paper wallets that you can give out to someone and they can import into wallet software for spending. In terms of onboarding, it's not really an improvement over asking the user to install a wallet first, then sending the tokens to them directly.

The second solution would be an advanced smart contract architecture (or alternatively, a custodial service) that would allow a user holding a coupon to "spend" a certain amount of tokens from the service without needing their own wallet. Definitely a challenge with contracts, but it would be a useful tool.

Your comments in this discussion have suggested you are building your solution with smart contracts. But if your proposed architecture for the contracts still necessitates a wallet, then I'm left feeling the same way about it as the paper wallet solution. Why is it better than just asking the user to install a wallet then sending them the tokens?

We encourage you to revisit the proposal and resubmit if a non-wallet dependent solution is something you want to pursue (or if you have any other ideas for improving the onboarding experience). Feel free to ask us more questions here.