Create

Cashdrops are produced from quests, so before anything can be collected, someone has to create, and fund at least one (1) quest first, to produce cashdrops. Creating a quest is simple and follow these steps:

1. Set quest parameters

  • quest name
  • cashdrop count
  • claim percentage (optional) = this option only applies to merchant-linked quests. Claim percentage is the percentage of how much the cashdrop reward will go to the voucher. By default it is 75% and can be adjusted within the range 10%-90%
  • memo (optional)

2. (Optional) Select a merchant to be linked to your quest

Quests by default are not linked to a merchant and users can link them by selecting the merchant in the quest create form. Linking a quest to a merchant automatically sets:

  • quest center to the location of the merchant
  • quest name to the merchant name (can still be edited)

3.(Optional) Set it to a fund later quest

Fund later quests automatically sets the quest’s settings to have static value:

  • quest radius to 15 km
  • quest amount to 0.004 BCH
  • cashdrop count to 10

4.Cashdrop generation

Cashdrop locations gets randomly generated within the quest radius. Cashdrop generation follows these rules and regulations:

  • Cashdrops cannot be generated on inaccessible or restricted places such as cemeteries, military zones and bodies of water.
  • No two active cashdrops can be at the same location.

5.Pay quest

  • Pay Now = pay using PurelyPeer wallet to create quest. Users pay to a payment covenant PAY_COV, which distributes the funds to the cashdrop covenants.
  • Fund Later = quest immediately gets created and added to fund later waiting list.

6.Quest funds distribution

  • more details here

Quest is created and is now visible on the map.

create_flow.png

Basic flow of quest creation for Pay Now (top) and Fund Later quests (bottom).

Quest Funding

Before a quest can be flagged active and its cashdrops be collect-ready, it must first be funded by a user with the given amount set during creation. Funding differs depending on the payment typePay Now quests are simple where users directly pay to the PAY_COV , however Fund Later quests require extra steps prior. A funder does not get to choose which quest he or she will fund, rather, it is randomized by the app depending on which area the user has set.

  • User sets the area where a quest will be randomized. It is a 50 km radius area and adjusting it is similar on how to adjust the quest center during creation.
  • After setting the area, the server will randomize a Fund Later quest amongst the quests in that area.
  • Once a quest has been selected, the cashdrops will be generated.
  • Payment page will show and the user has three (3) options for payment:
    1. pay directly using his or her own PurelyPeer wallet
    2. pay using another PurelyPeer wallet (scans QR code)
    3. or pay using a third-party wallet such as Paytaca or Bitcoin.com (scans QR code)
  • After payment is successful, the quest is funded and quest funds are distributed to the cashdrops.

Quest Funds Distribution

During quest creation payment, the funds the user has sent goes to a smart contract covenant called payment covenant a.k.a. PAY_COV . From the payment covenant, it is subdivided amongst the cashdrop covenants a.k.a. CD_COVs, which are the BCH rewards received by collectors.

Ideally it is much simpler to just directly send the user funds to the CD_COV addresses as recipients on a single transaction, but this method can not be enforced on fund later quests, which users has the possibility to send using external wallets (which we do not have control on how they construct transactions). As a solution, the user only has to pay to a single address, which is the address of the PAY_COV . From there the PAY_COV can distribute the funds to the CD_COVs , but the script size limit of CashScript limits the maximum number of cashdrops per quest to only 8, which is a very small quantity of cashdrops per quest (we want more or less than 100 cashdrops). In order to address this problem, we added an intermediary layer of covenants (DIST_COVs) to increase the number of cashdrops a quest can handle at max (which is currently 72).

payment.png

The main quest fund distribution flow. A payment covenant can distribute to 8 DIST_COVs at max, while one DIST_COV can distribute to 9 CD_COVs at max.

Before distribution is done, the values of the needed amount for each covenant is pre-calculated, including the revenue amount and fees for distribution and collection.