Skip to content

CheckoutFS - Create instant checkout and product pages hosted on IPFS

License

Notifications You must be signed in to change notification settings

cbonoz/hackfs21

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CheckoutFS

Create instant checkout pages for your business or service hosted on IPFS.

Prototype built for the HackFS 2021 hackathon.

Inspiration

Pain points:

  • To create a hosted product catalog, usually you'd need to pay a subscription fee hosted provider like squarespace or shopify.
  • Many of these existing providers don't integrate cryptocurrency.
  • Providers aren't distributed and suffer downsides of existing centralized platforms (vendor lock in, variable pricing, outages, credit card fees)

Features

  • Discover existing catalogs and menus. Use the the IPFS cid as the primary key for storefront access.
  • Upload images and descriptions for the catalog. Metadata for the catalog is delivered via a Ceramic stream.
  • Show sharable product pages hosted on IPFS.
  • Integrated pricing and checkout using Unlock protocol (other payment integrations could also be added).
  • Create a new wallet to support payments to help new businesses adopt and receive cryptocurrency payments.
  • IPFS powered storage and transaction record keeping.

Technologies used

  • IPFS and Protocol labs (Hosting and sharing of assets): IPFS and Filecoin are the primary drivers making CheckoutFS possible. Using web3.storage, a storefront or product page creator can host a distributed menu or catalog of items available for purchase with cryptocurrency.
  • Pillar (payments and wallet creation for uploaders) * Enables wallet generation and onboarding for businesses that may not have crypto accounts already. Pillar exists on the wallet page and is integrated live to validate that a customer's web3 wallet is ready to accept payments. Pillar is also leveragable for the checkout process which would need further development.
  • Unlock Protocol (purchasing): Provides cryptocurrency gateway to enable visitors/customers to purchase items from the checkout page. https://app.unlock-protocol.com/dashboard
  • Audius: Music sharing and content listings. Audius API is integrated into the product for musicians to be able to sell rights/use to their music through catalog pages. Lookup any playlist ID and get an instant page.
  • Ceramic: Used for storefront metadata storage and retrieval using streams (community node: https://developers.ceramic.network/run/nodes/community-nodes/). When a product page is accessed, a ceramic stream with the streamId of the page cid is opened and the metadata is rendered with the products from IPFS.
  • Fluence: Price oracle interaction for rendering real time USD quotes on checkout pages based on latest Eth price. Fluence enables doing this without a deployed smart contract or other oracle. Custom checkout pages would also be generated via an IPNS call.

How to run

Define the following env variables

    REACT_APP_STORAGE_KEY = {YOUR_WEB3_STORAGE_KEY}

yarn; yarn start

Example simple checkout page already hosted on IPFS: http://localhost:3000/pages/bafybeid67zzz5auzpc2botitsrp2lh2ybutnqkw3mej4s6dlrkthhmis5q

Aqua / Fluence

(WIP) For price oracle, regenerate aqua script file with js flag.

npm i -g @fluencelabs/aqua-cli # install aqua cli
cd `/aqua`
aqua-cli -i aqua-scripts -o aqua-output --js

ex: https://github.com/fluencelabs/examples/tree/ae3b23c99e5a23f7da99a22bf5a6877109ae7982/aqua-examples/ts-oracle

Enhancements

  • Integrate payments and checkout flows directly from the catalog (enabling the product to be used table side). Currently this is using a fixed Unlock.js modal.
  • Add support for physical address collection for physical or remote item purchase.
  • Email integration via fluence backend.
  • IPNS publishing and fully custom domains.
  • App prototype currently demoed on rinkeby, additional testing and implementation will be required for mainnet usage.

Screenshots

CheckoutFS

Creating a new storefront

Upload complete

IPNS publish to publicize storefront uploads.

Creating shortcut or scannable link

Basic storefront

Music-resell storefront

Verifying wallet

About

CheckoutFS - Create instant checkout and product pages hosted on IPFS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published