Skip to content
This repository was archived by the owner on May 29, 2025. It is now read-only.
This repository was archived by the owner on May 29, 2025. It is now read-only.

Coupon-based Grant System #69

@jacob-tucker

Description

@jacob-tucker

Coupon

Grant category

  • Developer tools / services

Description

I would like to make a smart contract that allows entities to send tokens (like $FLOW) to a specific project/DApp that are only able to be used inside of that DApp. Here is an example:

The Dapper team wants to give a grant to Flovatar community members, but wants to make sure that the grant given to those community members is only spent within that community. Meaning, those community members couldn’t go and use that $FLOW to purchase a Goated Goat, rather they would have to spend their “coupon” (as I call it) on Flovatar itself.

Problem statement

  • Target audience
    The target audience is actually larger entities like Dapper and Flow who give grants to communities for whatever purpose they desire. However, this could easily be used by any project to give grants or funding to other communities/DApps. It could also be used for simple donations to community members.

  • Evidence for the need
    Right now there is no way to ensure grants are spent in a correct manner. This would fix that problem. In addition, creating a coupon system may increase user acquisition to dapps, and further encourage developers to build products on Flow if they have a mechanism of attracting users with a controlled financial incentive.

Proposed solution

My proposed solution is a contract that allows communities/DApps to set up a “Vault”. This Vault will have a system that tracks token balances per each user in that community. For example:
Emerald City sets up a Vault in their account that looks like:
Jacob Tucker -> $FLOW -> 10.0
-> $STARLY -> 50.0
Person 2 -> $FLOW -> 5.0
-> $STARLY -> 0.0


Then, when Emerald City sets up a DApp that requires users to purchase something, we will embed a call to this contract inside of our transaction that will handle purchases automatically. So instead of simply withdrawing X amount from a user’s vault and depositing it to our community’s Vault, it will:

  1. Go through the coupon Vault
  2. Check to see if the user has any available coupons for the token in question
  3. Use whatever coupons available
  4. Continue the purchase normally

Impact

  • In what ways does this benefit the broader Flow developer ecosystem?
    It will make it much easier for Dapper, Flow, and other grant-giving entities to ensure that grant $ is spent in a way that is intended, rather than transferring tons of $ to a community and risking it being used elsewhere. The tool will be used to increase revenue to Flow dapps, with the potential to increase daily transacting users and transaction volume on Flow. If we can offer this tool to developers outside of the ecosystem, we may be able to attract them to Flow.

Milestones and funding

Milestone Deliverables Timeline Risks USD proposal
1 - MVP Smart Contract, Transactions and Scripts 2 weeks - 10,000
2 - Adoption Creating tutorials (written/video) for Dapper to give coupons to communities, and tutorials (written/video) for projects to integrate the coupon system 1 week - 1,500
3 - Maintenance This is to maintain the contract in a proper manner given frequent Cadence updates Indefinitely - 1,000
4 - TBD Website (Only if found beneficial) This would be to create a website to allow users to view their coupon balances across different projects, and also allow communities/DApps to view their users' balances in their community. This funding would go to the Emerald City developer community to build the website and get developers involved in real-world DApp building. 3 weeks - 10,000

Team

Name Role Bio Contact
Jacob Tucker Smart Contract Developer ... jacobtucker818@gmail.com

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions