TransparentBitbrowzeUsersManual

Douglas Crosdale

Digi-Library

TransparentBitbrowzeUsersManual

RealT User’s Manual Crosdale,inc©

The Transparent Registration Process

The Bitbrowze.com user who wants to Log-on will have the option to use Metamask or Linkdrop

The Bitbrowze.com user who wants to use MetaMask will be directed to a MetaMask App. Sign-up. ( https://metamask.io/ )

The Bitbrowze.com user who wants to use MetaMask will be see a link to a YouTube How-To: (https://www.youtube.com/watch?v=aw7Sh4APyPQ&frags=wn&ab_channel=RexKneisley )

This actual registration is associated with 2 linked Smart-contracts i. A Proprietor/Renter Token ( e.g. Landlord-Tenant Token ) ii. A Pyramid MLM smart-contract ( For word of mouth promotion of the Smartcontract) The Buyer’s Story: 1. A User visits the Wordpress registration page and saves all their details in WP itself. 2. User is then able to buy RealT tokens from the WP site and initiate a transaction to pay for purchases. 3. User will receive the RealT token as soon as the transaction is complete. 4. Ideally token transfers to the user himself or herself, after s/he pays the token amount 5. Thus, the user submits the registration form and becomes the buyer as soon as s/he initiates a transaction 6. The token will be transferred to the user/buyer himself. 7. In a similar way, once s/he becomes a buyer, s/he can later become a Promoter and be issues a Pyramid Token (called a OurBlock). 8. And be registered to a specific database called The Xdale Database 9. The buyer is allocated a ‘Reward’ Lottery coupon

When someone decides to register this is what happens: Actions Action #1 Click button to Register Action #2 Click a desired role (a) Promoter (b) Landlord (c) Tenant (d) Arbitrator Action #3 Enter a Sponsor's Public Key (To get a registration fee discount) Action #4 Pay registration Amount SMART-CONTRACT RESPONSES TO ACTIONS Response #1 Applicant is assigned a Keypair. Response #2 Issued a Public Key that is associated with the Sponsor's Public Key. Response #3 A "Relationship Key" created. Response #4 supplied a Login Password + Abbreviated Login ID (same as "relationship key) Response #5 granted Access to an appropriate Role via back end Admin Panel Response #6 allocated a Wallet with key pair as in Response #1 Response #7 offered a pre-filled Threema Messenger app. Response #8 allocated a 'Reward' Lottery coupon

TransparentBitbrowzeUsersManual

Back-end Updates



RealT User’s Manual Crosdale,inc©

The user model dB - associates a cart, as well as a purchase history, with every user account. - adds a new model in the database for the listing items. - adds the APIs for - enabling users to list, update, and delete items. - get listings for a specific user. - get all listings for all users. - add an item to user's cart/ update the cart. These updates are applied to both Real-T and Xeries.

To this end we have fixed some vulnerabilities by updating the npm package. Modified the user model in the database by adding (cart, listings, and purchased) properties. Added a new model in the database for listings to have (name, description, price, image, owner, and available) properties. Added a middleware to handle images and store them. Added the following 10 APIs and tested them using Postman: 1. POST /user/cart : to add an item for the current logged in user. 2. GET /user/cart : to get the cart items for the logged in user. 3. PATCH /user/cart : to update cart items for the current user. 4. GET /user/purchased : to get items the current user has purchased. 5. POST /listing : to add a new listing item. 6. GET /listing : to get all listing items posted by all users. 7. GET /listing/user/:id : to get all listing items posted by a specific user by his id. 8. GET /listing/:id : to get the details of a specific listing item by his id. 9. PATCH /listing/:id : to enable the owner to update a listing item. 10. DELETE /listing/:id : to enable the owner to delete a listing item.

An Alternative to MetaMask.

LinkDrop

Linkdrop is an airdrop, where instead of sending tokens directly to Ethereum addresses, the deployer generates a list of ‘claim links’. Learn more

High-level Process Overview

TransparentBitbrowzeUsersManual

Let’s assume Alice wants to linkdrop some tokens to friends. In order to do it, she needs to: 1. Deploy a Linkdrop Contract;



RealT User’s Manual Crosdale,inc© 2. Generate claim links; 3. Send links to friends; 4. Then one of Alice’s friends (Bob) can follow the link and claim the tokens.

Process Details

Let’s dive in how it works under the hood: 1. Contract Deployment

Alice loads Volca’s web app. Then she chooses params of a token linkdrop and deploys a Linkdrop Smart Contract. (See How to

Deploy’s post.)

Volca’s web app generates a new key pair which is used for link generation. Let’s call this key pair as Linkdrop Verification Key

Pair. The public key is attached to the contract, while the private key is kept secret by Alice and used later to generate links. 2. Link generation

After the contract is deployed, Alice’s device generates a bunch of links. (Note: Volca’s server never sees the Linkdrop

Verification Key and the links.) 1. For each claim link Alice’s device generates a unique Link Key*. 2. Alice’s device signs the link private key with the Linkdrop Verification Key. This step is needed so that the Linkdrop Smart

TransparentBitbrowzeUsersManual

Contract is able to verify that the link’s ephemeral private key was authorized by Alice. 3. Alice’s device constructs a link which includes Link Key* and the signature from Step 2. // link_key - unique link private key // sig - signature, which is generated by the Linkdrop Verification // private key signing link_keyconst link = `http://volca.app/receive?pk=${link_key}&sig=${sig}`



RealT User’s Manual Crosdale,inc©




RealT User’s Manual Crosdale,inc© 3. Link distribution

Link distribution is out of the scope of Volca’s Linkdrop solution. Alice can distribute links in any way she finds suitable: in- person, via email, chat messenger, phone number, etc.

For our case, let’s assume Alice sent a link to Bob using Telegram messenger.


TransparentBitbrowzeUsersManual



RealT 4. Claiming link → Here is how Bob’s user flow looks like

In order to claim tokens, Bob follows the link on his mobile phone. As Bob doesn’t have a wallet, he is prompted to download and install Trust Wallet on his device. After the installation Bob generates a new account in the app. Then he is automatically redirected to the claiming page.

On the claiming page, Bob’s device parses the link to get the link’s

User’s Manual

Link Key* and uses this private key to sign Bob’s address.

TransparentBitbrowzeUsersManual

Crosdale,inc©





TransparentBitbrowzeUsersManual



TransparentBitbrowzeUsersManual



RealT User’s Manual Crosdale,inc©

TransparentBitbrowzeUsersManual

After that, Bob’s device sends his address and 2 signatures to Volca’s server:  One signature to verify that the link’s Link Key* is authorized by Alice  Another signature is to verify that Bob’s address is signed by the link’s Link Key*





RealT User’s Manual Crosdale,inc©



TransparentBitbrowzeUsersManual



RealT User’s Manual Crosdale,inc©

The Server calls Smart Contract which verifies the signatures and that the link wasn’t claimed before. If everything is correct, the contract distributes the tokens from Alice’s account to Bob.



TransparentBitbrowzeUsersManual



RealT User’s Manual Crosdale,inc© *Link Key — a unique Ephemeral Private Key generated per each Claim Link.

Architecture

Volcà Web App  Deploys a Linkdrop Smart Contract for the linkdrop  Generates claim links (as a CSV file)  Allows receiver to claim tokens

The deployment and interaction with the Linkdrop Smart Contract and the Relaying Server are handled by the volca-airdrop- core library on GitHub.

A Linkdrop Contract  Distributes tokens from Linkdropper’s Ethereum Account  The receiver gets tokens and Ether after following a claim link  Linkdrop Contract is deployed for each linkdrop

The smart -contract’s code can be found on GitHub.

TransparentBitbrowzeUsersManual

Volcà Relaying Server

Volca’s server which calls Smart Contract on behalf of the receiver. Volca pays for gas instead of the receiver.



RealT User’s Manual Crosdale,inc©

Creating an Anonymous Identity 1 Visit the website “Guerrilla Mail.com ” 2 Create an email account 3 Use that ID to Register for Threema or Telegram, etc 4 Once registered, a verification code will be sent to that Anonymous email. Use that code 5 You now have an Anonymous Messenger that may be used in future to interact with the App



Vivamus vestibulum ntulla nec ante.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitationullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit involuptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat nonproident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Sed egestas, ante et vulputate volutpat, eros pede semper est, vitae luctus metus libero eu augue. Morbi purus libero, faucibus adipiscing, commodo quis, gravida id, est. Sed lectus. Praesent elementum hendrerit tortor. Sed semper lorem at felis. Vestibulum volutpat, lacus a ultrices sagittis, mi neque euismod dui, eu pulvinar nunc sapien ornare nisl. Phasellus pede arcu, dapibus eu, fermentum et, dapibus sed, urna.