Giter Site home page Giter Site logo

green_android's Introduction

Blockstream Green - A native bitcoin wallet for Android

Build Status

What is Blockstream Green?

Blockstream Green is a non-custodial Bitcoin wallet - it allows you to safely store, send, and receive your Bitcoin.

It's a mobile app available for Android and iOS, based on gdk, our cross-platform wallet library.

We offer a variety of advanced features, such as letting our users set their own spending limits, watch-only access for observers, and our unique multisig security model. All of these (and more) are explained in more detail here.

Get it on F-Droid Get it on Google Play

Build

For instructions on how to build Blockstream Green please refer to BUILD.md

Contributing

Guidelines for contributions can be found in CONTRIBUTING.md

Translations

You can help translating this app here

Support

Need help?

Read our FAQ or contact us at [email protected].

License

Blockstream Green is released under the terms of the GNU General Public License. See LICENSE for more information or see https://opensource.org/licenses/GPL-3.0

Authenticity

Verifying the APK signing certificate fingerprint is very important for you own security - please follow this steps to make sure the APK you've downloaded is authentic.

Unzip the APK and extract the file /META-INF/GREENADD_.RSA; then run:

keytool -printcert -file GREENADD.RSA

You will get the certificate fingerprints; verify it matches with:

Certificate fingerprints:
	 MD5:  60:D0:C6:E1:B7:8B:5F:E7:E1:94:B6:B8:7D:54:D0:73
	 SHA1: 7F:05:E3:DC:29:CB:E6:76:F5:0A:56:A2:80:1A:FD:37:91:96:8F:7A
	 SHA256: 32:F9:CC:00:B1:3F:BE:AC:E5:1E:2F:B5:1D:F4:82:04:4E:42:AD:34:A9:BD:91:2F:17:9F:ED:B1:6A:42:97:0E
	 Signature algorithm name: SHA256withRSA
	 Version: 3

Now download the list of cryptographic checksums: SHA256SUMS.asc

Verify that the checksum of the release file is listed in the checksums file using the following command:

shasum -a 256 --check SHA256SUMS.asc

In the output produced by the above command, you must ensure the output lists "OK" after the name of the release file you downloaded.

Now import our GPG key:

04BE BF2E 35A2 AF2F FDF1  FA5D E7F0 54AA 2E76 E792

Verify that the checksums file is PGP signed by our key:

gpg --verify SHA256SUMS.asc

Check the output from the above command for the following text:

A line that starts with: gpg: Good signature

A complete line saying: Primary key fingerprint: 04BE BF2E 35A2 AF2F FDF1  FA5D E7F0 54AA 2E76 E792

green_android's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

green_android's Issues

Problem with 2fa using Aegis app and Green.

Hi,

I installed Aegis (https://play.google.com/store/apps/details?id=com.beemdevelopment.aegis) using https://f-droid.org/ on the same phone but on another android profile.
The idea is use 2fa on another profile that doesn't have Green installed.
I setup the 2fa Green on Aegis and it worked ok, but if I change the "seconds" from 30 to 180 on Aegis, the 2fa code on Green doesn't work. With 30 seconds works ok. But with 30 seconds is not enough to me to switch android profiles and insert the aegis 2fa code on Green.

My request here is: be able to use Aegis with any other config that is not the standard 30 seconds.

Don't wait on user to press OK post mnemonic qrcode scanning

Description

When scanning (24 words) mnemonic it shouldn't wait for me to press OK to go to PIN.
For 27 it should ask for password and then go straight to PIN.

Version

both 3.0.6 and 3.0.7

Steps to reproduce

Scan mnemonic. You will have to press ok to continue.

Expected behaviour

Scan mnemonic. You won't need to press ok to continue to the next step (PIN)

[Feature Request] xpubkey export

It would be great if we're able to export the xpub key from our Green Wallet.

Use Case: I'd like to add xpub key to my BTCPay Server and receive payments directly to my Green Wallet. However, if this is added it's related to #49 since merchants usually need a bit higher gap limit than regular users.

Mandatory wait after entering 2fa code

Hello people, I think it would be fantastic to have a separate wallet where the funds have to go through a mandatory wait of x days (user chooses) after entering the second factor code, to avoid physical theft and short term psychological manipulation

On accounts window should have a word like (used) or (not used)

Hi,

I have three wallets, two of them has 0 balance but was used. (has transactions).When I go to accounts window I would like to see, without clicking on it, that if an account was already used or not.
So I think should have a word on account like (used) or (not used).

Thanks.

Why the option to create a new wallet and restore wallet when already exist a wallet?

Hi,

Blockstream Green has the option to restore or create a new wallet even with a wallet already created or restored. But as you can see you will need mneminic all time to login.
I don't think it should have this option, because only complicate the UX (see image) and if users want to have two profiles of apps, Android has a function called DUAL APPS.

photo5120902989379381258

Adding individual UTXO management

Description

A lot of privacy concerns can be handled with well guided UTXO management best practices. Power users want to have in depth control over the individual coins. Desktop wallets like Electrum or Wasabi have implemented this already, the same design can be applied to mobile wallets. Blindly using branch and bound might consolidate UTXOs with different historical clusters. This can leak unnecessary metadata.

This is a long-term feature request.

Desired behaviour

  • @nopara73 describes the importance of coin control and his design desicions for Wasabi Wallet.
  • I think the two core attributes are 1] precise labeling of every UTXO/Graph and 2] individual selection of UTXOs at the time of spending.
  • It might be of benefit to display the suggestion of branch and bound, but leave the final decision to the user.
  • Good UI would be an automatic sum of the total value of all selected UTXOs next to the MAX button.

Stuck at verify PIN step.

version 3.0.7

I get asked to verify PIN, after last digit nothing happen.

I'm sure the verified PIN is good as when entering the wrong PIN it say so.

There should also be a way to back if PIN was wrong

Can't login

Hi,

I was able to login, but now when I try to login I see this on Android:

photo4940681613268854823

Still not working with Trezor

Description

The latest update says the issue with trezor passphrases has been fixed. It still doesn't work for me.

Version

Green Version 3.0.8

Steps to reproduce

When I plug my trezor in there is indeed fields to enter my passphrase but when I enter it in both fields, and press 'continue', that still doesn't show me my trezor account balance for that passphrase. Instead it shows a message on my trezor asking "Sign message? cancel or confirm". I didn't create any transaction or message that needs to be signed. When I hit 'cancel' it says: "Error logging in with Hardware wallet". And when I, reluctantly, choose 'confirm' it gives me that same message.

Expected behaviour

I expect it to show me my balance on the trezor and give me the option to spend from it or receive funds to it.

Actual behaviour

explained above in 'Steps to reproduce'

Device or machine

Trezor One 1.7.3
Google Pixel 2 phone
Android 9

[Feature Request] Allow custom gap limit if I'm using my own node

It would be extremely useful if you'd allow custom gap limit option that can be set up only if a user is using their own full node.

Use case: I'm using BTCPay as a merchant and want to see payments in my green wallet, because of the gap limit, I'm unable to see all of the transactions coming from my btcpay.

TX change not showing up in wallet

Description

From Green Wallet I sent a TX from a p2wpkh address, to a p2wpkh (<--recipient) address and bech32 (<-- change output). The recipient address is showing up in the wallet, but the change address is not.

Version

3.1.2

Expected behaviour

Should show change addresses.

Actual behaviour

Does not show address

Device or machine

Android 8.1

Locked out of wallet if trusted SPV credentials change

Description

If SPV trusted node credentials change or my node goes offline, I am locked out of the wallet.

Version

3.0.6

Steps to reproduce

I am connected to my own node via tor. The wallet works as expected. Now turn my node off. Load green wallet. Unlock with pin. I get a spinning animation and am locked out.

Expected behaviour

After passing the pin/pattern check I should be able to change connection options.

Actual behaviour

The screen stays blank.

Screenshots

Device or machine

Google Nexus 6 running LineageOS Android 7.1.1

Additional info

Feature Request: Coin Control

Description

Would really help with maintaining of privacy if we could spend from specific addresses only, mark addresses as 'do not spend', etc.

Version

3.1.0 (Fdroid)

Device or machine

-Samsung Galaxy S9+ SM-G965F/DS (Exynos)
-Lineage OS for microG 15.1 Android 8.1.0

Additional info

I love this app, but coin control would make it 1,000,000x easier to use.

Share Receive address defaults to single app

Description

Share receive address button defaults to single app instead of giving options

Version

3.0.6

Steps to reproduce

Click Receive, than click Share Address button

Expected behaviour

Options to share to different apps like email , whatsapp, text message app and others.

Actual behaviour

Mine simply defaults to whatsapp which makes for poor UX. Work around is copying to clipboard than opening up email app and pasting address, but this involves more steps.

2 suggested fixes. Ideal = have a popup appear which indicates "share via" and a list of common apps
less ideal = in settings allow one to predefine app to share

Device or machine

Android 7.1.1

Recovery Transaction email link returns 404 error

Description

Requesting a recovery transaction results in an email being sent containing a link to the recovery tool, but clicking the link returns a 404 page error.

Version

3.1.0 (Fdroid)

Steps to reproduce

Request recovery transaction
View email
Click provided link from email

Expected behaviour

Should take you to the correct github page for the garecovery tool

Actual behaviour

404 page error when going to https://github.com/greenaddress/garecovery.

Screenshots

Device or machine

Samsung S9+ Android 8.1.0

Additional info

Feature Request: Better Error Message for Tor SPV

Description

When an onion address is entered for a trusted peer for SPV, the app throws an error telling the user to set the SOCKS5 Proxy. However, the screen to set that proxy info is hard to find; a shortcut from the settings would be a good idea.

Version

3.1.3

Steps to reproduce

Attempt SPV with a peer over tor before setting proxy info.

Expected behaviour

Easier location of screen to enter proxy info.

Actual behaviour

Hard to find proxy screen.

Screenshots

N/A

Device or machine

N/A

Additional info

None

Cannot create wallet or restore wallet

Description

Cannot create a new testnet wallet or mainet wallet from scratch . Tested both on VPN and local uplink. Not using TOR or proxy. Deleted and reinstalled app and tested again. Tested more than 6 times. Cannot restore 24 word seeds either created by blockstream green. Failure always occurs either after confirming the words or entering in the 24 words in restoration where app just hangs or shows an error message where I can close or send error report feedback

Version

green 3.1.3

Device or machine

Android 7.1.1 build - 1 april 2018

HW - LG-M700F

Additional info

I sent in a report with error logs 30 minutes ago via the app

SPV: Timeout Stops Syncing over Tor

Description

When using the trusted peer for SPV over Tor, the timeout feature automatically logs the user out, which seems to stop the SPV syncing process. It's hard to 100% tell because reopening the app to look at the SPV block notifications causes a new login which restarts the peer connection and the progress bar resets. The notification bar still shows syncing at that point, but it doesn't seem to progress. Upon re logging in, it has to reconnect to the peer over again before picking up where it left off.

UPDATE: It's really just a UX thing with the progress bar resetting rather than it actually stopping syncing. See the next comment in the thread.

Since the SPV syncing takes a while, it would be good if it could continue in the background rather than requiring the user to log back in every 10 mins.

Version

3.1.3

Steps to reproduce

When using the trusted peer for SPV over Tor, the timeout feature automatically logs the user out, which seems to stop the SPV syncing process. It's hard to 100% tell because reopening the app to look at the SPV block notifications causes a new login which restarts the peer connection and the progress bar resets. The notification bar still shows syncing at that point, but it doesn't seem to progress. Upon re logging in, it has to reconnect to the peer over again before picking up where it left off.

Expected behaviour

Continued background sync on logout, especially for the initial sync.

Actual behaviour

Timeout kills the sync. See the next comment in the thread.

Screenshots

N/A

Device or machine

Xiaomi Mi Mix 2, Android 8.0.0 OPR1.70623.027, MIUI Global 10.2

Additional info

None

[Feature Request] ability to copy recipient address from send page

Description

If clicking on a link to say, a donation address, green address automatically opens to the send page. Would be convenient to be able to copy the address to view in a block explorer, or use a different wallet.

Some links that I am opening come from inside apps and the ability to long press the link to copy link address is not available.

Version

3.1.3

Feature request: protect yourself from duress

I really like your overall security approach. An important consideration for a wallet (depending on where in the world you live) is if someone is under duress, 2FA won't be enough to stop loss of funds. A few options to address this:

  • Ability to lock a portion of your funds (perhaps an account in greenaddress) with an unlock delay of X amount of days. Unlocking the account or portion of funds then requires 2FA codes and delay to pass that was set when funds were locked.
  • Daily transaction limit with time based override. Example: you may only send 1 BTC per day even if you can give 2FA codes. Removing the daily limit has X amount of days delay.

Your wallet is ideally positioned to take advantage of daily limits, time based locks/delays, etc. due to having an online service that validates/approves transactions. Many other wallets won't be able to provide these features.

Auto-logout annoying popup window

There's something annoying with the auto-logout:

If I'm using other app and green is opened and logged on background, when the auto-logout happens, the green login window show in front of the other app I'm using.

Could be great if the auto-logout happens on background and do not show green window when I'm using other app.

Main App Icon much smaller on 4.4.2 Android

Description

Downloaded on Android 4.4.2 (Samsung G S3) and the main app icon is much smaller relative to other apps. Downloaded on Android 7.0 (Samsung G S7) and the icon is normal size and looks good.

Version

Version 3.0.6 on Play Store

Steps to reproduce

  • Download and install the App from Play Store
  • Navigate to the App Icon on one of the main screens

Expected behaviour

Icon should be similar size to other icons. Will standout better for users.

Actual behaviour

Icon is too small

Screenshots

image

Device or machine

Samsung G S3 4.4.2

Additional info

Here is a good looking icon on Android 7.0 Samsung G S7

image

Can't restore wallet

Description

After typing in the 24 word mnemonic and clicking OK, the error login failed pops up.

Version

Green v3.0.6

Steps to reproduce

Type in 24 words, press OK. Same error in both main net and testnet, with and without tor.

Expected behaviour

Accept mnemonic and continue with the wallet setup process.

Actual behaviour

Login failed, no further process.

Device or machine

One Plus 3, Android v8.0.0, OxygenOS v5.0.8

Additional info

Great wallet, keep it up!

Feature request: Support for Native Segwit/Bech32

I understand that you will be adding Bech32 support for address creation in the near future. This is great to have standard but so many wallets like electrum make a critical mistake in UX.

Despite many services upgrading to Bech32 support , there will always be laggards that do not upgrade for years as we have seen historically. Thus it would be great to generate at least one fallback SegWit-P2SH as an option for users that get an error when trying to send to a bc1 address.

I understand there is an incentive for us not to want to support SegWit-P2SH to force businesses to upgrade but a better approach would simply be to allow the user to click a link for 'legacy segwit" that gives them the old SegWit-P2SH address and gives them a warning that the sender is using obsolete address standard and this is costing them more in tx fees when they respend.

Phone number format is confusing [UI]

From the UI it seems like the +1 is already pre-entered.

I thought the requirement was to have dashes in the number.

Suggestion, pre-fill "+1" or allow for "1" to mean "+1" and filter out space and dashes "-" in number.

Include 'sats' denomination

Under the Settings -> Account -> Bitcoin denomination menu right now the options are:

  • BTC
  • mBTC
  • μBTC
  • bits

It would be great to also have a sats¹ option given the recent growing popularity of the denomination associated with the Lightning Network and the availability of this option in other popular wallet apps and UIs.


¹ satoshis, where 1 BTC == 10^8 sats

libwally does not exist

Description

error: package com.blockstream.libwally does not exist

Version

master

Steps to reproduce

clone repo
get gdk sdks
try running it via android studio

Expected behaviour

should run and compile properly

Actual behaviour

Causes the error mentioned above

Screenshots

Device or machine

macOS Mojave,Android Studio 3.1.3
Build #AI-173.4819257, built on June 4, 2018
JRE: 1.8.0_152-release-1024-b01 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Mac OS X 10.14.1

Additional info

SPV: Getting Tor Connectivity Disabled Warning Even With Orbot

Description

Under settings, under "Only Connect to Trusted Node for SPV", I put an onion address. Orbot is active, and Green is added as an app in Orbot. VPN mode is on. Green will not allow the onion address, stating "Tor Connectivity is Disabled!"

However, when I run Bitcoin Wallet for Android, I am successfully able to connect to my node via SPV using the exact same onion address, so I don't think it's an Orbot issue.

This is a v3 hidden service address if that matters.

I may be doing something really stupid, but I've been messing around for a while and can't seem to figure this one out.

Version

3.1.3

Steps to reproduce

Under settings, under "Only Connect to Trusted Node for SPV", I put an onion address. Orbot is active, and Green is added as an app in Orbot. VPN mode is on. Green will not allow the onion address, stating "Tor Connectivity is Disabled!"

Expected behaviour

SPV connection over Tor.

Actual behaviour

Error message as described above.

Screenshots

N/A

Device or machine

Xiaomi Mi Mix 2, Android 8.0.0 OPR1.70623.027, MIUI Global 10.2

Additional info

None

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.