Skip to content
This repository has been archived by the owner on Jun 28, 2024. It is now read-only.

User Journey

sheikhshack edited this page Dec 6, 2022 · 6 revisions

Contents

  1. Foreword
  2. PBM Issuer Experience (Campaign Organiser)
  3. PBM Holder Experience (Members of Public)
  4. PBM Redeemer Experience (Merchants)
  5. Sample Screens

Foreword

The following documentation details the overall user experience for the Project Orchid Trial. Note that these are designs catered for the context of the trial.

For clarity, the following terms will be standardised as follows:

Name Description
PBM Issuer Responsible for minting, burning, issuing and freezing PBM tokens.
PBM Holder Party that receives the PBM directly from the issuer. This is akin to a voucher recipient
PBM Redeemer Party that receives the underlying voucher value. This is akin to a merchant

PBM Issuer Experience (Campaign Organiser)

As described in previous sections, token minting requires the issuer to shore up for an equivalent amount of DSGD. Essentially, issuers will need to already have the required DSGD tokens that they wish to wrap a purpose to. The following illustrates the token flow.

sequenceDiagram 
	participant PBM Issuer
	participant PBM Contract
	participant PBM Holder

  PBM Issuer ->> PBM Contract: Spawn and init contract, via factory
	note over PBM Issuer: at this point, PBM issuer <br> has $10 DSGD tokens
	PBM Issuer ->> PBM Contract: Request Mint to PBM Holder, $1 PBM
activate PBM Contract
	PBM Contract ->> PBM Issuer: Deduct $1 DSGD, credit DSGD to self
	PBM Contract ->> PBM Holder: Mint and Credit $1 PBM to PBM Holder
deactivate PBM Contract

	note over PBM Contract: contract <br> has $1 DSGD tokens
	note over PBM Issuer: issuer <br> has $9 DSGD tokens
	note over PBM Holder: holder <br> has $1 PBM tokens
Loading

PBM Holder Experience (Members of Public)

Onboarding

The voucher (PBM) holder will # for a campaign with the PBM Issuer. The RedeemX platform will then create a crypto wallet for this holder and map this wallet to an agreed upon identifier (eg; mobile phone number, nric etc.). The holder will then be sent a unique voucher link via SMS. This voucher link will contain all the necessary information to access this created wallet.

sequenceDiagram
    PBM Holder->>PBM Issuer: # for Campaign
    PBM Issuer-->>PBM Issuer: Creation of Crypto Wallet
    PBM Issuer-->>PBM Holder: Share a Unique link to the web application
Loading

While this flow is convenient, it will not be a permanent fixture. The grand goal would be to have the concept of a relatively universal wallet (along with relevant identification related infrastructures) for holders, such that a single wallet could be used to make claims for different PBM campaigns across different schemes. These will be explored in greater detail in the near future.

Payment

The transaction experience will be similar to that of a typical online payment flow, as follows:

Payment Flow

flowchart LR
    id1(Select Amount) --> id2(Select merchant to pay) --> id3(Payment confirmation page) --> id4(Payment Success page)
Loading

Merchant View

flowchart LR
    id1(Merchants key in their wallet address) --> id2(Merchant check transaction history)
Loading

The interaction between the PBM holder, the merchant contract and the token contract can be summed up as follows:

sequenceDiagram 
  participant PBM Holder
  participant Merchant Contract
  participant Token Contract


        PBM Holder ->> Token Contract: Request for token information / balances
	PBM Holder ->> Merchant Contract: Request for valid merchants for token
	Token Contract -->> PBM Holder: returns token information
	Merchant Contract -->> PBM Holder: returns merchant listing


	PBM Holder ->> PBM Redeemer: select merchant, create transaction


	activate PBM Holder
	PBM Holder ->> PBM Holder: sign transaction
	PBM Holder ->> Token Contract: commit transaction, wait for confirmations
	deactivate PBM Holder
Loading

PBM Redeemer Experience (Merchants)

Onboarding

Merchants would # with RedeemX platform, where their bank account numbers are later sent to the partnering bank for the creation of a crypto wallet. Upon creation, the wallet address will be returned to RedeemX and these addresses will be added to the “approved” merchant list within the PBM contract of a particular campaign. Merchants will then be provided a link for them to access their wallets via the same RedeemSG Merchant interface.

sequenceDiagram 
  participant Merchant
  participant OGP
  participant DBS

  Merchant->>OGP: Merchant #
  OGP->>DBS: Send Merchant Bank Account Number
	DBS->>DBS: Create Crypto Wallet
	DBS->>OGP: Send Merchant Crypto Wallet Address
	OGP->>OGP: Add Merchant Wallet Address to the PBM Contract
  OGP->>Merchant: Send a unique link to access the merchant app
Loading

Note: For the context of this trial, merchants would have to have an existing bank account with that of the partnering bank, DBS. This again will be expanded further to be more interoperable with other banking arrangements in the future.

Payouts

In previous sections, we discussed briefly on the concept of off-ramping. At the end of the day, DBS will run a job and transfer all the DSGD from the merchant’s crypto wallet back to their crypto wallet, hence conducting an off-ramp. After-which, these DSGD tokens are burned from circulation and the equivalent earmarked SGD is released back into the respective merchant bank accounts.

sequenceDiagram 
	participant DBS
  participant Merchant

  DBS->>Merchant: Trigger Daily Job
  Merchant->>DBS: Transfer DSGD to DBS Crypto Wallet
	DBS->>DBS: Burn DSGD, release earmarked SGD
	DBS->>Merchant: Release SGD to Merchant Bank Account
Loading

Sample Screens

The following outline the 4 main steps when generating a payment to a merchant:

user_landing_page user_merchant_list user_payment_confirmation user_payment_receipt