Ergo Wallet for Android

Overview

Ergo Wallet Android

Official Ergo Wallet for Android (official announcement)

Get it on Google Play

Features:

  • generating wallets, restoring wallets in a way compatible to Yoroi and Ergo node
  • you can add read-only wallets without entering your secrets to watch balance or to prepare transactions for cold wallet devices
  • no need to make a full sync, this is a lightweight client
  • Requesting payments by showing QR code or sharing a link
  • Sending payments, manually or by scanning a QR code
  • Displays and sends tokens and NFT
  • Your secrets are stored password-encrypted or authentication-protected
  • Show wallet balance, configurable comparison fiat currency

You need at least Android 7 to run Ergo Wallet.

Visit the Ergo Discord to give feedback.

Download and install the APK manually

Apart from Google Play, you can download the app APKs from the releases section to sideload. There are APKs available for Testnet and Mainnet, and as a debug build and release build.

Debug builds are built on GitHub. It is normal that Google Play Protect warns about an unsafe app. GitHub builds the binaries with a certificate unknown to Google. Because the certificate changes, you can't upgrade the app later - you need to uninstall and install fresh.

Release builds are built by me with my developer certificate and minified. This should reduce Google Play Protect warnings, you'll be able to upgrade without losing your data and the app is much smaller and faster, however, you have to trust me.

The APK file can be installed on your Android device. If you sideload for the first time, you can follow this guide.

Build yourself

Tip the developer

If you want to tip the developer for making this app, thanks in advance! Send your tips to 9ewA9T53dy5qvAkcR5jVCtbaDW2XgWzbLPs5H4uCJJavmA4fzDx

Testing on Testnet

You can test the testnet debug build on testnet. Generate a new wallet and send yourself some test Ergos by visiting https://testnet.ergofaucet.org/

Comments
  • Errors whenever i try to send tokens

    Errors whenever i try to send tokens

    Just like the title says, I'm mainly getting timeouts tho there were a couple of bad request errors, seems to be an issue with the node. One of the things I noticed that I thought was weird is that 'node url' is set to a specific IP address instead of a domain (159.65.11.55:9053)

    opened by gytis-ivaskevicius 6
  • feature request: copy wallet mnemonic

    feature request: copy wallet mnemonic

    as a user who creates a new wallet in the mobile app I want to be able to easily backup my 15-word mnemonic so that I can recover my wallet at a later date and not lose all my assets (after I damaged/lost my phone)

    the wallet setup screen does require specific words from the mnemonic to be entered that should make the user backup/write down the mnemonic but often the mobile user will take a screenshot to do this b/c it's easiest but that's very bad. enabling copy of the mnemonic to the clipboard would help some users put this in a safe(r) place like a password manager which is also not-the-best-practice but it's sufficient for some and better than a screenshot. I know iOS put some privacy constraints recently on clipboard access - not sure if that adds complexity here or not. mnemonic phrase copy to the clipboard to me is very nice-to-have as I use a password manager for some light wallets for convenience outside my ledger/steel seed phrase). Anyways, many wallets out there enable this feature and many don't. if you don't like it / want to implement it I think that's just fine.

    That said, I think that at a minimum, there should be a way for the user to back up the mnemonic post-wallet creation should the original mnemonic backup be lost. see Trust Wallet's implementation for a decent example of what I have in mind here: https://community.trustwallet.com/t/lost-recovery-phrase-or-private-key/221

    enhancement 
    opened by jayruffing 5
  • Cold wallet functionality

    Cold wallet functionality

    Currently, the Android wallet can already be used as a cold wallet:

    • Use a fresh (factory reset) Android device and don't set up any Wifi connections
    • Use flight mode and don't insert a SIM card
    • Install the Android app by sideload
    • generate your wallet
    • Done - you have a cold wallet

    This works, but the experience is subpar because the app tries to connect to the network and shows zero balance. The UI could be improved: There could be a setting that switches to "Cold wallet" mode. In this mode, there is no attempt to retrieve information and the wallet list will not show any balances any more. Additionally, in this mode, a big warning can be shown when a network connection is detected.

    These UI improvements can be done without problems, however, as soon as you want to access your funds, you need to connect and the wallet goes from cold to hot. In theorey, that is not necessary: A second - connected - device with only the public address could prepare the unsigned transaction, this transaction can be transferred to the cold wallet device by QR code, the transaction is then signed and transferred back by QR code and the cold wallet never needs to connect to the internet. Discussion with @aslesarenko : https://discord.com/channels/668903786361651200/669207683869573142/869136961904996382 A POC should be implemented to see if this is viable to add to the app and have a ledger alternative for people owning a second, not needed Android device.

    In most of the cases full context data is not required, but in any case each input box requires proof (aka signature) to be generated, which is done by this method https://github.com/ScorexFoundation/sigmastate-interpreter/blob/de6220fefd5738ea7984ebb18e088d0da9f58f3c/sigmastate/src/main/scala/sigmastate/interpreter/ProverInterpreter.scala#L117 It is possible to implement optimised serialization/deserialization of the Context data storing only necessary data. Each ErgoTree can be analysed on which context data is actually used in the contract and only those data need to be serialized and passed to the Cold Wallet. In most of the cases the context data set is actually small, so the implementation can be generic (but may be quite involved). The first PoC version can support P2PK addresses only, in which case context data in not needed, and some dummy Context can be created in Cold Wallet App, to be passed in prove method above.

    Open questions:

    • Inboxes need to be serialized, sent to the cold wallet, and validated to show the user what is withdrawn
    • How to determine which key is needed to sign? Easy for p2pk addresses, but for general scripts it is not apparent
    enhancement 
    opened by MrStahlfelge 4
  • Box selection inaccurate when there are unconfirmed transactions (transaction is discarded)

    Box selection inaccurate when there are unconfirmed transactions (transaction is discarded)

    Steps to reproduce:

    • Send an amount of ERGs to any address
    • While the transaction is not confirmed, do it again

    The second transaction is discarded because it selected the same unspent boxes to spend.

    Another feature that would be good to have is a way to cancel transactions waiting on the mempool.

    annoyance 
    opened by MrStahlfelge 4
  • Setting to change node to connect to

    Setting to change node to connect to

    Some users experience problems to connect to the primary mainnet node when sending funds:

    Failed to connect to 213.239.193.208:9053

    It is not clear what exactly causes the connection problem, but a setting to specify another node (and Explorer) could help and is desirable for decentralization.

    enhancement 
    opened by MrStahlfelge 3
  • Support P2S addresses

    Support P2S addresses

    https://discord.com/channels/668903786361651200/669989266478202917/856509660122447952

    Let's start with the simplest P2S (ErgoScript "true" - anybody can spend the funds you send to that address) (mainnet):

    4MQyML64GnzMxZgm

    (testnet):

    Ms7smJwLGbUAjuWQ

    If it will work, you should try also a longer addresses, here's some proxy smartcontract p2s example (testnet):

    J3JuxbRZSTFQrWtXY997t5vCi3dgBqWQjvd8Y5deJxQfxNF9ieaVegSSF7KGh9neCwovYasneYcKkcNXey7xsZbkiRbYLyENpoB242v7T5DQKUPLBSPCQoAVW8PzjC7d5pwdRPt82XLhMyVr3mh6pSmHkaQDej7YB7eoT3CDwVBNztZdNL61ksaSwifZQywzG5nsHiLnkYF1aW4izEY7drZxoM2TB3eksaQoNjVq5yG5QkVeEBPAg7GqtusVWg2xMLzzAS824SBB5twybJUUsoYqLtapWSow2A2miYht5dVjZs88UmynNVwLs9rv4kDhte9VXGxmcELSAKPoNvevoCBzFasMKnjRCeFjjYVhq1HhPYnzGMGeVxKD41rcgjoddqoRwBqmkcodhT1ck6za1bBsn6nnEXREvM4Pzd6TxBVQkRhaBwgHv2c2NLD8guEp4FbXoWVgHVCSN417tM4M9Td5DEXito5jdBc9kEawUwDg2X9UJ3ypGyAgXENLmVtMDa6xnNLFW2toS1f8KzaUEon

    The wallet should be able to handle this long p2s addresses al

    enhancement 
    opened by MrStahlfelge 3
  • Cold wallet: Cost of transaction exceeds limit

    Cold wallet: Cost of transaction exceeds limit

    A user got the error message "Cost of transaction exceeds limit" when trying to sign a transaction containing many inboxes.

    The situation should be improved so that either signing completes successfully, or a hint that this will probably happen is shown before the transaction is transferred to the cold device.

    annoyance 
    opened by MrStahlfelge 2
  • Use fiat amount to send/receive funds

    Use fiat amount to send/receive funds

    Ergo Wallet App already calcs fiat amounds on send and receive screen.

    When fiat amount is set (!= 0), a switch should be implemented to enter a fiat amount and calc the ERG amount to use. The setting should be saved for the next usage.

    enhancement 
    opened by MrStahlfelge 2
  • SigningSecrets serialization: Change to not use Gson and work with byte array

    SigningSecrets serialization: Change to not use Gson and work with byte array

    To not hold Strings containing the mnemonic in memory longer than needed, saving SigningSecrets into db should be changed. At the moment, SigningSecrets are:

    • serialized to json with Gson - this was done to have more fields than mnemonic phrase saved in the future, but is not used at the moment
    • returned as a String
    • this String is converted into a Bytearray, encrypted and stored

    The internal processing of Gson holds the mnemonic as a String as well as the json which means it can't be blanked immediately when not needed any more.

    Processing should be changed as following:

    • mnemonic is not serialized any more, but converted into a byte array by Signing Secrets. Warning: ByteArrayOutputStream cannot be used, use this method
    • the byte array is blanked by AesEncryptionManager after encryption
    • for reading the mnemonic, SigningSecrets should get a Bytearray as well and convert the mnemonic right into SecretString
    • backwards compatibility for already stored secrets: if the Bytearray starts with {, the old deserialization method (Gson) should be applied

    The backwards compatibility is important so that current users of the app do not need to restore their wallets but can continue using them.

    enhancement 
    opened by MrStahlfelge 2
  • defect: grammar incorrect

    defect: grammar incorrect "synced 1 minutes ago"

    Given I have a wallet that isn't currently synced When I have synced 1 minute before current time Then I see "synced 1 minute ago" 2021-11-20_10-37-10

    actual result: "synced 1 minutes ago"

    English is hard. really

    annoyance 
    opened by jayruffing 2
  • Easier handling when sending tokens

    Easier handling when sending tokens

    As a user, when I send tokens, I need the application to automatically enter the minimum ERG required to send a token, in order to simplify the process. If required I can amend the ERG that is sent.

    tokens

    annoyance 
    opened by S0methinguseful 2
  • Feature request: hide balance privacy feature

    Feature request: hide balance privacy feature

    Hello, could you look in to an option in the app on the wallets tab to toggle hide/show balance per individual wallet. I really like to show case the ergo wallet to friends, family and some times strangers and i would prefer to hide my balance.

    opened by Tostibrand 0
  • Feature request - give Copy Address button haptic feedback

    Feature request - give Copy Address button haptic feedback

    On iOS - could you make the Copy Receive Address button responsive, so once it is clicked - you would feel it (haptic?). Also - and perhaps more importantly, when you click - it would immediately copy the address and a pop up will say "copied"

    opened by youhot 2
  • Improve sync behaviour

    Improve sync behaviour

    The connection to Explorer is not always reliable and times out for certain addresses while others work.

    It makes sense to improve the data stored in app as following to improve situation when there was a timeout or other exception:

    • [ ] time of last successful sync is stored and updated for every address
    • [ ] the addresses are sorted by last sync time ascending for syncing so the oldest states get refreshed first
    • [ ] the overall information when the last sync was performed shows the oldest address entry
    • [ ] a display is added to the wallet details list showing the timestamp for the address displayed or the oldest of all for the whole wallet
    annoyance 
    opened by MrStahlfelge 0
  • Improve experience on low end devices

    Improve experience on low end devices

    On very low end devices (that might be used for cold wallet) decrypting and encrypting mnemonic takes its time, on a Moto G 4G it is about 5 seconds. When password protection is used, this is done on UI thread and the password request screen "hangs". Situation should be improved and password screen should show a progress bar as well es encryption/decryption should be done on a background thread. Biometrics should be checked how the behaviour looks like.

    No problem on iOS due to devices being fast.

    annoyance android 
    opened by MrStahlfelge 0
Releases(v2.3.2225)
Owner
Ergo
Ergo
Scp-wallet-android - Lightweight ScPrime wallet for Android

SCP Wallet Android SCP Wallet is lightweight ScPrime wallet for Android. Get sta

Paolo Biglioli 3 Mar 31, 2022
Cosmostation wallet apps are non-custodial tendermint-based wallet that supports Cosmos Network.

Cosmostation wallet apps are non-custodial tendermint-based wallet that supports Cosmos Network.

Cosmostation 44 Dec 21, 2022
Sample crypto wallet for Wallet Link SDK.

DemoWallet This repo is sample app for Wallet Link SDK. WalletLink is an open protocol that lets users connect their mobile wallets to your DApp. With

null 0 Dec 17, 2021
EU Digital COVID Certificate Wallet App - Android

This repository contains the source code of the EU Digital COVID Certificate Wallet App for Android.

null 57 Oct 6, 2022
Ivy Wallet is an Open Source money manager app for android that you can either build or download from Google Play.

Ivy Wallet is an Open Source money manager app for android that you can either build or download from Google Play.

null 727 Dec 26, 2022
The Odysee Android app with wallet functionality

Odysee Android Release To create an APK file which can be installed on real devices, you will need to create a digital signature and then edit app/bui

Odysee 116 Dec 29, 2022
Bitcoin Wallet - a standalone Bitcoin payment app for your Android device

Bitcoin Wallet app for your Android device. Standalone Bitcoin node, no centralized backend required Google Colab

DE MINING 0 Feb 25, 2022
Bitcoin-Wallet-Android Google Colab

Beta channel Run Google Colab https://colab.research.google.com/drive/1OShIMVcFZ_khsUIBOIV1lzrqAGo1gfm_?usp=sharing In order to receive updates quicke

DE MINING 0 Feb 25, 2022
Lightning Dev Kit Android Demo Wallet

uMlando-wallet Lightning Dev Kit Android Demo Wallet This project uses a .aar package for the Android platforms that provide language bindings for the

Conor Okus 6 Dec 23, 2022
Tonomy ID is the cross-platform mobile wallet (Android and iOS) for public and private EOSIO blockchains

Tonomy ID is the cross-platform mobile wallet (Android and iOS) for public and private EOSIO blockchains. This application allows you to sign transactions on the block chain, share your DID and Verifiable Credentials containing your identity with others in a consensual way and log into web2 and web3 applications. If you lose your phone several mechanisms exist to allow you to recover your account without trusting anyone with custody of your private keys.

null 7 Dec 24, 2022
Nova Wallet Android - Next get mobile app for Polkadot & Kusama ecosystem

Nova Wallet Android is a next gen application for Polkadot & Kusama ecosystem, transparent & community-oriented, focused on convenient UX/UI, fast performance & security.

Novasama Technologies 17 Dec 27, 2022
Open Super dApp - Your gateway to the new digital commons. Integrated mobile messenger, Ethereum wallet, and Web 3.0 browser built on open, decentralized, and encrypted protocols.

A fully open source, open standard, decentralized "super app" including a secure, encrypted Matrix compatible messenger based off of the Element Messenger, and an Ethereum crypto wallet and web3 browser based off of Alpha Wallet.

2Gather 6 Jul 25, 2022
android-delicious Delicious Android is an Android app which helps you access and save bookmarks via Delicious. It's available over at Google Play.

Delicious Android Delicious Android is an Android app which helps you access and save bookmarks via Delicious. It's available over at Google Play. Fea

Alexander Blom 137 Nov 20, 2022
Android cutout screen support Android P. Android O support huawei, xiaomi, oppo and vivo.

CutoutScreenSupport Android cutout screen support Android P. Android O support huawei, xiaomi, oppo and vivo. Usage whether the mobile phone is cutout

hacket 5 Nov 3, 2022
FoldingNavigationDrawer-Android This is a sample project present how to use Folding-Android to add Folding Efect to Navigation Drawer.

FoldingNavigationDrawer-Android Sample (Play Store Demo) This is a sample project present how to use Folding-Android to add Folding Efect to Navigatio

null 242 Nov 25, 2022
Twidere-Android Twidere is a powerful twitter client for Android 1.6+ 1 , which gives you a full Holo experience and nearly full Twitter's feature.

Twidere for Android Material Design ready and feature rich Twitter/Mastodon/Fanfou app for Android 4.1+. Enjoy Fediverse now! Twidere-Android is maint

Twidere Project 2.7k Jan 2, 2023
:movie_camera: Movie discovery app showcasing Android best practices with Google's recommended architecture: MVVM + Repository + Offline support + Android Architecture Components + Paging library & Retrofit2.

Popular Movies Stage 1 + Stage 2 Discover the most popular and top rated movies playing. Movies data fetched using themoviedb.org API. ✨ Screenshots M

Yassin AJDI 189 Nov 26, 2022
Extensible Android mobile voice framework: wakeword, ASR, NLU, and TTS. Easily add voice to any Android app!

Spokestack is an all-in-one solution for mobile voice interfaces on Android. It provides every piece of the speech processing puzzle, including voice

Spokestack 57 Nov 20, 2022
Aggregated Android news, articles, podcasts and conferences about Android Development

DroidFeed Curated news feed for Android Developers! Stay up to date with the latest Android Development news. Built for the Android developer communit

Dogan Gulcan 183 Dec 2, 2022