Skip to content

Tutorial: Walletless dapps: Onboard users without requiring a wallet #18052

@qbzzt

Description

@qbzzt

Tutorial title

Walletless dapps: Onboard users without requiring a wallet

Tutorial description

Users who aren't already using dapps and don't have a wallet are unlikely to install an extension, especially one that requires all the permissions a wallet requires, just to check out a cool website they heard about. If you want to onboard such users, it is best to start with a walletless experience.

In this tutorial you learn how to do exactly that. You learn how to write web apps that offer a wallet-less experience by embedding the wallet in the client-side code of the application, from creating the initial seed phrase, through storing the encrypted wallet client-side, all the way to impersonating a standard wallet so you won't need to write two separate versions of your application.

Combined with gasless transcactions, this lets you onboard users and have them use your dapp first, and only ask them to install a wallet once they see the value that dapps provide.

Tutorial tags

frontend, wallet, rust, wasm

Skill level

Intermediate

Hosted on ethereum.org or hosted elsewhere?

Hosted on ethereum.org

For tutorials to be hosted on Ethereum.org: Tutorial Content

  1. Introduction: Why is this worth doing?
  2. The tools: Vite, React, WASM, and Rust.
  3. Getting started, creating the seed phrase and the keys
  4. User experience: How to get users to keep reasonable safety.
    This section also includes writing to the browser storage
  5. Impersonating an extension-style wallet
  6. How this can go wrong
    6.1. Insecure browser
    6.2. User moving to a different device
    6.3. User forgetting or disclosing the seed phrase
    6.4. Impersonating sites
  7. Conclusion

For tutorials hosted elsewhere: URL to tutorial

No response

Would you like to work on this issue?

  • Yes
  • No

Metadata

Metadata

Assignees

No one assigned

    Labels

    content 🖋️This involves copy additions or editsfeature ✨This is enhancing something existing or creating something newneeds triage 📥This issue needs triaged before being worked on

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions