https://github.com/cbonoz/hackfs21
CheckoutFS - Create instant checkout and product pages hosted on IPFS
https://github.com/cbonoz/hackfs21
Last synced: 21 days ago
JSON representation
CheckoutFS - Create instant checkout and product pages hosted on IPFS
- Host: GitHub
- URL: https://github.com/cbonoz/hackfs21
- Owner: cbonoz
- License: mit
- Created: 2021-07-31T18:12:18.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-08-15T21:51:32.000Z (almost 4 years ago)
- Last Synced: 2025-05-03T09:01:37.045Z (25 days ago)
- Language: JavaScript
- Homepage:
- Size: 245 MB
- Stars: 4
- Watchers: 2
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - CheckoutFS - code checkout storefronts on IPFS with metadata stored in Ceramic streams. (Awesome List / Applications)
README
![]()
## 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 --jsex: 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