Open talmahaj opened 4 years ago
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.
- 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
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.
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.
- 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
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.
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
User sees modal about referral program with their unique referral URL generated for them. Design above!
User shares URL with friends
When friend taps deep link to download app, some parameter persists throughout app download process in order to keep track of who referred them
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