Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

zkSync: 👛 Wallet Logic! #3

Open
VictoQ opened this issue Feb 24, 2023 · 0 comments · May be fixed by #196, #213, OliverT1/ETHDenver-2023#1, #340 or #385
Open

zkSync: 👛 Wallet Logic! #3

VictoQ opened this issue Feb 24, 2023 · 0 comments · May be fixed by #196, #213, OliverT1/ETHDenver-2023#1, #340 or #385

Comments

@VictoQ
Copy link
Collaborator

VictoQ commented Feb 24, 2023

Description 📃

For first timers:

If this is your first time at a hackathon or with your teammates, this blog post on organizing a hackathon team may be beneficial(https://tesla809.medium.com/draft-crash-course-how-to-organize-a-hackathon-team-29b221c23905). In our experience, a clear method of collaboration increases the chances of teams completing their projects, improves team efficiency, and reduces the time to completion.

TD;LR: Innovations in wallet design for better UX/UI, plus lower fees, will help onboard the next billion users. Because good UX/UI like is magic. It just works.

✨The Magic: Account Abstraction unlocks innovations in wallet design by bringing web2 UX/UI convenience to web3, so that self custody is much easier and decentralization increases.

🤫 The Secret: Account Abstraction allows organizations to create curated web3 experiences to create smooth onboarding. With AA, we can adapt accounts to business logic needs, instead of adapting business logic needs to accounts. 

🔍 The Deets: By treating smart contract accounts at the same level as Externally Owned Accounts (EOA), we can break free from the EOA’s hardcoded assumptions. Accounts are abstracted because now the implementation and the interface are decoupled, allowing for customizable accounts only limited by your imagination.

A great example of Account Abstraction can be found in Raise Finance’s Blog: https://raisefinance.medium.com/the-power-of-account-abstraction-technical-overview-of-the-raisepay-wallet-8e8c43dee64f

Dapp suggestions:

Think of your own idea! Optionally, you can pick one of a few of the hackathon idea suggestions as prompts to user stories via the following categories:

  • Security to increase safety and self custody for users

  • Onboarding to attract users and simplify interactions, reduced number of steps, or clicks.

  • Retention to keep them

Improve security using Account Abstraction via one or more of these:

  • One idea is a general abstraction in multisig wallets for plug and play services: easily add fraud monitoring, KYC, or any arbitrary service.

  • This general abstraction can be used for multi-factor authentication via any medium: Gmail, Google Auth, etc.

  • Another application could be fraud monitoring or KYC service, where the service is one of the multi-sigs wallet signers: if configurable compliance rules work, sign. For example, if transactions are under a certain amount or accounts are not on OFAC list.

  • Another idea is a general purpose custom wallet generator: easy to create inter-linked custom accounts customizable functionality, using visual GUI tools. Think IFTT meets ETH.Build, meets Your Favorite Wallet.

  • An application would be the easy generation of compliant intra-web of accounts for organizations. This allows the segregation of funds and easier control of risk. Some accounts can only pay certain vendors, employee payroll, investments only in certain assets, taking deposits, etc. How can you map the payment flows of an organization to an intra-web of accounts?

  • We’d love to see any cool and innovative ideas you can dream of.

  • Some prompts to get your imagination going are: Deadman switches, interesting forms of social recovery, Emergency Escape Hatches from L2 → L1, Innovative Curve and Encryption Schemes, customizable allow / deny lists for DApps, social methods of crowdsourcing allow / deny lists, trading margin limits based on number of multi-signature signers, easy methods to generate new accounts based on DApps, safety vaults for safe storage like customizable time locks on certain assets to prevent stealing.

Improve onboarding using Account Abstraction and Paymasters via one or more of these:

  • paying the gas fees for users with Paymasters.

  • paying bills and fees with ERC20 tokens like USDC.

  • session keys: easily generate sessions keys to approve all transactions under certain customizable conditions. Super useful for gaming or immersive experiences.

  • multi-calls: no more signing several transactions, now you can batch transactions for flow.

  • Any out-of-the-box ideas you can dream of. Impress the world!

Improve retention via one or more of these:

  • Using Paymasters to reward on-chain activity like: pay fees or percentage of fees for users that meet a certain threshold.

  • Using Account Abstraction to help increase utility of assets.

Acceptance Criteria 🏁

First, the DApp MVP must work. Whatever is claimed to work, must work. If not, cut the feature.

  • Documentation should include**:**

    • a clear README.md with the following:

      • a clear short one-sentence description of your dapp. Aim for something simple like: “Easy social recovery via Telegram” or “Customizable long-term vaults on smart contract accounts to prevent thefts from hacking”.

      • short description of team and backgrounds.

      • a clear installation/execution process that works.

    • a clear Open Source License: MIT, GNU, Unlicensed or any standard open source license your team want.

    • a simple UML to describe how the contracts interact with each other.

    • a clear 2-4 minute video demo walking through the DApp.

    • Have a Project Description section: with a longer written description of what the project does.

    • How its made section: Describe how you made the project, mention any issues you ran into.

    • Please show a steady commit trail and thought process e.g. sketches, discussion, issues on how you arrived at the decision to incorporate this feature.

Code:

  • Your Solidity/Vyper code must use NatSpec.


  • Bonus points for:

    • Producing a tutorial we can use

    • scripts to automate installation with ease

    • an additional ~2-5 minute video talking about the code. Geek out and show us your skills.

    • Great UX/UI

    • a slide presentation in README.md

    • JSDocs comments for JavaScript or TypeScript code

    • A catchy name and logo

    • a clear Design Statement using the format: How might we improve (a problem in the domain)_____ for (user), so that (user-focused outcome)___?

    • For an example: https://tesla809.medium.com/draft-crash-course-how-to-organize-a-hackathon-team-29b221c23905

    • Having tests or fuzzing.

Reward Pool 💸

USDC 8500

@wosigor wosigor linked a pull request Mar 18, 2023 that will close this issue
@kopy-kat kopy-kat linked a pull request Mar 18, 2023 that will close this issue
@OliverT1 OliverT1 linked a pull request Mar 18, 2023 that will close this issue
@OliverT1 OliverT1 linked a pull request Mar 27, 2023 that will close this issue
mrhouzlane referenced this issue in mrhouzlane/ETHDenver-2023 Apr 3, 2023
@mrhouzlane mrhouzlane linked a pull request Apr 3, 2023 that will close this issue
@mnm458 mnm458 linked a pull request Apr 6, 2023 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant