Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Referral Program #525

Open
talmahaj opened this issue Jul 31, 2020 · 2 comments
Open

Referral Program #525

talmahaj opened this issue Jul 31, 2020 · 2 comments

Comments

@talmahaj
Copy link

talmahaj commented Jul 31, 2020

UX/UI

https://app.zeplin.io/project/5dbdf1a40bdfd3832e35c9c5/screen/5f2b42bf19a3e53d807ab306

User Flow

1a. Existing user ("existing user" defined in this case as a user that has already completed creating their wallet and received at least their first faucet transaction in a prior session) foregrounds Tari Aurora app for the first time following release of the referral program feature
OR
1b. User taps gift icon on top right of new tx list design at any time: http://zpl.io/2vJq1We

  1. User sees modal about referral program with their unique referral URL generated for them. Design above!

  2. User shares URL with friends

  3. When friend taps deep link to download app, some parameter persists throughout app download process in order to keep track of who referred them

  4. Recipient downloads app and completes onboarding process through the first faucet transaction being received, which triggers the referrer user to receive their bonus tXTR (let's say 5000 for now) via a transaction from the referral bonus wallet we host, with a note reading "Someone you referred created their Tari Aurora wallet. Enjoy your well-deserved tXTR bonus for your efforts."

Open Questions

  • Does this feature have to have a centralized component, or can we do this through the Tari network somehow?
  • Is the best way to do this by creating a Tari "referral bonus wallet" we host on some always-on server that has a few million tXTR in it sent over by team members who are mining?
  • We need to figure out how to track referrals via deep links. Branch (https://branch.io/) does this but is quite expensive, so perhaps we can find a free or very low cost solution. I found this in case it's a good alternative: https://firebase.google.com/docs/dynamic-links/use-cases/rewarded-referral
  • How do we prevent abuse? Can we ensure that unique devices (that are not your own) only get counted once, in case a user asks the person they invited to delete the app and redownload it to get yet another referral bonus?
  • What will the referral link URL structure be? Don't feel strongly about this, but ideally it can use the tari.com domain.
@Jasonvdb
Copy link
Contributor

Jasonvdb commented Aug 4, 2020

Open Questions

  • Does this feature have to have a centralized component, or can we do this through the Tari network somehow?

One solution might be to work this into the current faucet server. When a user requests their first drop they pass through the public key of the user that invited them. So we know who to send the reward to.

  • Is the best way to do this by creating a Tari "referral bonus wallet" we host on some always-on server that has a few million tXTR in it sent over by team members who are mining?

Yeah this is what I would assume. But the current base node doesn't yet have a complete API as far as I'm aware so automating payouts this way might not be available yet. They are working on a RPC solution but we'll need to check in with that team to confirm. Another possible solution is to use the faucet still, which would require use seeding the database with a bunch of new utxos. I think Hansie knows how to do this though.

Tracking might be tricky. Glancing at the firebase solution it seems like it all relies on a central DB of users. Something that'll never exist for Tari. Depending on what needs to be tracked we might have to build this into our faucet or payout server. We would know which pub key referred which pub key at least. But do we want to track individual users or keep anonymised stats? Can looks into this more still.

@talmahaj talmahaj changed the title Referral Program (WIP) Referral Program Aug 11, 2020
@talmahaj
Copy link
Author

Open Questions

  • Does this feature have to have a centralized component, or can we do this through the Tari network somehow?

One solution might be to work this into the current faucet server. When a user requests their first drop they pass through the public key of the user that invited them. So we know who to send the reward to.

That would be awesome.

  • Is the best way to do this by creating a Tari "referral bonus wallet" we host on some always-on server that has a few million tXTR in it sent over by team members who are mining?

Yeah this is what I would assume. But the current base node doesn't yet have a complete API as far as I'm aware so automating payouts this way might not be available yet. They are working on a RPC solution but we'll need to check in with that team to confirm. Another possible solution is to use the faucet still, which would require use seeding the database with a bunch of new utxos. I think Hansie knows how to do this though.

Could we even batch manual payouts at first if needed? Let me know what you think we should do for the first iteration of this feature.

Tracking might be tricky. Glancing at the firebase solution it seems like it all relies on a central DB of users. Something that'll never exist for Tari. Depending on what needs to be tracked we might have to build this into our faucet or payout server. We would know which pub key referred which pub key at least. But do we want to track individual users or keep anonymised stats? Can looks into this more still.

Pls look into this and let us know what the options are, we definitely strongly prefer to keep anonymised.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants