/EttaWallet

Simple open-source non-custodial bitcoin/lightning wallet with a strong bias towards usability, accessibility and good UX

Primary LanguageTypeScript

Etta: A reference open-source non-custodial lightning wallet

Etta Wallet Preview

  • Built with React Native for Android & iOS.
  • Written in Typescript
  • Fully customizable with designed components
  • Built with accessibility in mind ♿️
  • Built-in localization 💬
  • Open source 😸

License

Twitter Github

Etta Wallet will be a resource for experimenting with non-custodial lightning with a strong bias towards usability, accessibility and good UX.

The project is strongly inspired by Bitcoin Design Community's daily spending wallet and will continue to evolve with their sound suggestions.

Features

  • Bitcoin only wallet
  • Non-custodial
  • Lightning via LDK and Electrum
  • Supports multiple languages and locales
  • Accessibility baked-in (Haptic feedback, screen reader support)
  • Biometrics security: Fingerprint, Touch ID, FaceID
  • Scan QR codes
  • Just-In-Time liquidity with zero-conf channels
  • Open new channels
  • Automated channel creation via LSP
  • Local backups
  • Cloud backups
  • Connect over TOR
  • LNURL support
  • Contacts (For BOLT 12 offers, Lightning addresses, etc)
  • Toggle dark mode

Current Limitations

  • Ships in testnet for now
  • Translations are outdated.
  • Accessibility features are outdated for most components.

Reproducible Build (Don't trust, verify)

Start by forking the repo from GitHub, clone it locally and install dependencies.

git clone https://github.com/YOUR_GITHUB_USERNAME/EttaWallet
cd EttaWallet
yarn install

Developing

Once you've cloned the repo, installed dependencies, run the following command.

yarn start

Android

  1. Using a physical android phone? Enable Developer mode and USB Debugging, and confirm it is connected by running adb devices. If you want to use an Android simulator, this step isn't necessary
  2. Open a new tab in your terminal and run yarn android

iOS

  1. Open a new tab in your terminal
  2. cd ios && pod install. For M1, you might have to do arch -x86_64 pod install
  3. cd .. && yarn ios.

Contributing

EttaWallet is an open-source project so anybody can use and contribute to it. You also don't necessarily need to know how to code. Some meaningful contributions include:

  • Sharing ideas and suggestions
  • Improving documentation
  • Sharing well-written bug reports
  • Improving the translation scope.
  • Requesting new features.

You can start in the discussion forum here.

If you would like to contribute code, here a few guidelines:

  • It would be helpful to create an issue first before submitting a PR just to make sure nobody isn't working on the same yet or it just wouldn't be a good fit.
  • Even if your changes are obvious, your PR should define what you are changing. Nothing is too obvious.
  • PRs should be opened against the next branch.

Branches

current - The latest release

next - The branch to submit pull requests against. It mirrors what's coming in the next release

License

EttaWallet is 100% open-source and available under the MIT license.

Attribution

Special thanks to the following open-source projects that help make EttaWallet possible.