We can have marketing delegates that run faucet and finance referral program out of their payroll. The referral program pays some amount of BitAsset to identified unique users that download BitShares client and create account. For instance delegate can spend 80% of the payroll to fund referral program and pay 10 BitUSD per user/account created.
There would be also an initiative for users to invite their friends, e.g. each user referred a friend can get additional 10 BitUSD if friend installs client software and registers account.The faucet would work as described below:
1. Somebody visits faucet website
2. There would be a clear call to action (CTA) “Download BitShares client, register account and get 10 BitUSD”.
3. Visitor clicks CTA link a goes over proof of person/identity verification process.
4a. After finishing step 3 visitor is suggested to download the client and install it.
4b. Also visitor gets a ’10 BitUSD coupon’ to his email address.
5. User installs BitShares client and clicks on a coupon link or just copies coupon code as text.
6. BitShares client/wallet opens coupon redemption page suggesting user to choose his/her account name and enter coupon code (if coupon linked clicked the coupon would be inserted automatically).
7. After user submits account name, BitShares client communicates with faucet website checking the coupon's validity, if coupon valid the faucet registers user’s account and credits it with 10 BitUSD.
8. Faucet generates new coupon, passes it back to client and client suggests user to share it with friends on Facebook, Twitter, forums, etc, if friend registers account, user gets 10 BitUSD and also friend going over identification process (steps #1-#7) gets his 10 BitUSD.Advantages of this kind of referral program are:
- It's simple in terms of UX - user just goes over proof of person process, downloads and installs BitShares client, redeems coupon and chooses an account name, account name gets registered immediately.
- It's easy to implement - this doesn't require any toolkit changes or hard forks.
- It's self-sustaining - delegates compete to run the faucet - so stake holders voting for delegates, vote for some parameters of the campaign, such as niche served, marketing message, price per acquisition, so if stake holders think the dilution caused by the campaign not worse the value that new users bring it, stake holders vote out the delegate.
- This kind of campaign creates scarcity - spending 80% allows each delegate to register no more than 200 users each month within the current market cap, if there would be more users willing to register an account, the faucet can put them on a waiting list. Having a waiting list makes BitShares looks like something scarce which is good factor for successful marketing campaign, also this process resembles “invitations only” campaigns that were proven to be very successful (think gmail).Implementation.
1. We need open source faucet/proof of person software that anybody can download and run as a website.
2. This software should be able to generate coupons and have json api, so BitShares client/wallet would be able to communicate with faucet.
3. Faucet software should be able issue and redeem coupons.
4. BitShares client/wallet should be able to communicate (via JSONP AJAX) with faucet to check and redeem coupons and making faucet to register user’s account.
5. Delegates running this service have to make all the records public so the community can audit referral links, coupons generated, etc and vote out non-effective delegates.
In order to BitShares client to find which faucet it needs to talk to redeem a coupon, delegates running faucets needs to publish faucet endpoint urls.
In general delegates can run not only faucet software, but provide some other services, so they can publish a list of services, e.g.:
"coupon-prefix": "A123", // this is need for client to figure out what faucet to user to redeem coupon
Some of the services can be supported by the client out of the box like faucet or escrow service, some of them may require installation of angular module - delegates publish github link and client downloads and installs it, when delegates update app's version, client will automatically update it. If delegates removes this application from a list of provided services, client can uninstall the application. When delegate is voted out, the application would be no longer available.
Probably it’s too early to run full scale campaigns before we have stable network, simple lightweight client and on/off ramp services, but we before we get there we try this on a smaller scale, let’s have a single delegate running this and watch the results, if this would work, I'm sure stake holders would vote in more delegates running referral programs like this for different niches. Also voting in/out delegates may help us to figure out how much we want to pay for user acquisition and how much delegates can collect as compensation.
To prevent delegates from cheating and to have a single delegate efficiency metric (KPI) I suggest to remember first used faucet name or id somewhere in on the client/wallet side and make it to pass it to some centralized location each time the client is started, we can have a http callback address on bitshares.org for this, all the data gathered should be made pulicly available so everybody can see how many users opened the client multiple times and what faucets or referral programs have aquired those users.
Probably instead of a centralized location, we can find a way for clients to pass this data to all delegates on chain or off chain.
Some more features can be implemented on top of this, e.g. sending BitUSD to any email address directly from the wallet. Faucet operator just needs to have BitShares account so all the transfers to this account that include email address in the memo field would be forwarded to specified email address. There is no need for sender to create faucet account. Receiver needs to login to faucet via OAuth and verify email address.
This approach doesn't require a delegate position. It only requires a faucet with some funds that would be used to pay up referrals, it can be as low as 0.5BTS per user - just amount needed to register an account. Having a delegate running this kind of campaign just makes things simple.