yujiym / frkt

ETHGlobal Online 2023

Home Page:https://frkt.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Test Image 3

FRKT

No-Code tools for Web2 & 3.
FRKT(/furΙͺkt/) provides a frictionless UX for any app.

This repo is build for ETHOnline 2023.

Demo is here.

About this project

πŸ€” Problem

When I was thinking about dApps ideas, I always ran into two onboarding UX issues. User's wallet and initial gas-fee.

πŸ’‘ Solution

Based on Account Abstraction by Biconomy (we can also use other AA stack) and MPC by Lit protocol, we wrap protocols, smart contracts, and other APIs etc. And we made integrating them together as a toolkit. This toolkit provides Zapier or IFTTT like functionality with embedded widgets into any app.

πŸ“ Workflow

  1. [App owner] Setup App, Select a recipe to use, Generate widget code in FRKT dashboard
  2. [App owner] Install widget code into apps. (paste 1 javascript file & script tag)
  3. [App users] When the application user opens the widget.
    1. Create a user's wallet (a. Google Oauth or b. webauthn).
    2. Execute function in a widget (gas-less tx by AA).

Architecture link here

Folder structure

β”œβ”€β”€ apps
β”‚   β”œβ”€β”€ dashboard      -> πŸ› οΈ Dashboard frontend
β”‚   β”œβ”€β”€ demo           -> ⚽ Demo app frontend
β”‚   β”œβ”€β”€ frkt-subgraph  -> πŸ“ˆ Subgraph for widget
β”‚   β”œβ”€β”€ widget         -> πŸ‘“ Widget
β”‚   └── www            -> ✈️ Landing page (frkt.io)
β”œβ”€β”€ packages
β”‚   β”œβ”€β”€ contracts      -> 🎩 Smart contracts
β”‚   └── common         -> Common libs
...

🎩 Contracts

Smart contracts for FRKT widget.

  • Hardhat
  • Ethers.js

πŸ› οΈ Dashboard

Dashborad for generationg widget code.

  • Next.js (React, TypeScript)
  • Tailwind CSS
  • Hosted on Vercel
  • Vercel Postgres

⚽ Demo

FRKT widget integration demo app. -> FRKT demos

  • Vite (React, TypeScript)
  • Tailwind CSS, daisyUI
  • Firebase Hosting, Firebase Auth(Google OAuth)

πŸ‘“ Widget

Widget component for recipes.

  • Next.js (React, TypeScript)
  • Tailwind CSS
  • Hosted on Vercel
  • Vercel Postgres

✈️ Landing page

FRKT LP

  • Hono, Vite (React, TypeScript)
  • Tailwind CSS
  • Hosted on Cloudflare Pages

Techs

Applied Prizes

Safe

Safe{Core} Account Abstraction SDK

Our team developed the SignContract widget with the Safe{Core} Account Abstraction SDK built in.

Lit Protocol

  • Programmatic Signing with the Lit JS SDK V3

    Our team developed authbypass, the most prominent feature of this product, using LitProtocol SDK V3.

    GoogleAuth and WebAuthn are supported so that users can implement their preferred authentication method.

Filecoin

  • DWeb It The PDF file of the contract used in the SignContract Widget was uploaded to IPFS using Web3.storage.When creating the recipe, the file was uploaded, the IPFS link was set to the smart contract, and the information was stored in The Graph protocol.

    Contract file data on IPFS

    code is here

Polygon

Scroll

The Graph

  • New Subgraph

    Our team deployed a new subgraph to index SignContract data deployed in Base Goerli. This subgraph makes it possible to centrally manage multiple contracts with a single contract.

    Subgraph's API endpoint is here

    sample Query

    query MyQuery {
      signContractCreateds(
        orderBy: signId
        orderDirection: desc
        where: { signId: "1" }
      ) {
        appId
        name
        receipeId
        required
        safeAddress
        signId
        uri
        owners
      }
      changeApproveStatuses(
        orderBy: signId
        orderDirection: desc
        where: { signId: "1" }
      ) {
        appId
        receipeId
        signId
        approveStatus
      }
      signatureAddeds(
        orderBy: signId
        orderDirection: desc
        where: { signId: "1" }
      ) {
        appId
        receipeId
        signId
        signature
      }
    }

Chainlink

PushProtocol

  • Pushing Boundaries Award (Most Creative Idea Using Push Protocol)

    Our product is designed to allow the developer to set the paymaster for each app, so we developed a GatTankChatbot that uses the PushProtocol SDK to notify developer when the paymaster's balance gets low so that we do not run out of paymaster.

    code of pushprotocol implementation is here

About

ETHGlobal Online 2023

https://frkt.io

License:MIT License


Languages

Language:TypeScript 88.7%Language:Solidity 3.4%Language:CSS 3.3%Language:JavaScript 2.7%Language:HTML 1.8%