Coder Social home page Coder Social logo

bitcoin-android's Introduction

Bitcoin Android

NOTE: This app is no longer supported or under development. Please visit Coinbase.com for the latest (this is my full time project going forward). The app below was an early experiment in bitcoin, and it had some limitations since it was operating a full bitcoin client on the mobile device (which used lots of storage, bandwidth, and CPU - took too long to sync with the blockchain). My future mobile apps will make use of the Coinbase API so that the heavy lifting can be done in the cloud while the mobile device acts as a thin client.

Send and receive bitcoins from your Android phone!

Note that this app is still under development and may lose your coins! Test it with small amounts.

You can get it from the Android Market here and click "Install" to send it to your phone.

Checkout a YouTube Demo Video Here

Features

  • Send/Receive bitcoins entirely from your phone (no server component required)
  • Scan and generate QR codes to share address, amount, etc between devices
  • Recognizes the Bitcoin URI format
  • Creates transactions in the absence of internet (will retry when you reconnect)
  • Email invoices from your phone to request money
  • Wallet file backed up in the cloud (synced to your Google account) in case you lose your phone.
  • A free app, 100% open source

Installation

You can download and install the app from the Android Market.

For best results, install the app while connected to WiFi (it will download some data the first time you launch it).

Next, get a few coins in your wallet by starting the app and tapping "Request Money". From here you can send a request to yourself by email. The request will contain your wallet's receive address which you can paste into your desktop client or the bitcoin faucet to add funds to your wallet.

Usage

Check out the wiki page on using bitcoin android.

Technical Details

Check out the wiki page on technical details.

Contributing

Feel free to fork and send pull requests. Contributions welcome.

Donations

To support ongoing development of bitcoin android try scanning this QR code from your phone or sending donations to 1Gp1himAQ4jmmQJ5zZwQxKmv7yg4Drm5M4

TODO

  • optionally require a pin code to send money for additional security?
  • ability to generate more than one receive address
  • make backup to the cloud optional for those who want the privacy
  • move to a "thin client" implementation instead of storing the entire blockchain (this will become necessary as the blockchain grows over time)
  • make an easy link to the Bitcoin Faucet for people to get a few coins on the device when they first try it
  • clicking a bitcoin link in the mobile browser should open the send money screen (with fields filled in) using Android intents

Credits

Bitcoin Android is based on the bitcoinj library by Mike Hearn at Google. He deserves some very special thanks!

It also makes use of the zxing library for processing QR codes. The icon was created by visualpharm.com.

License

Bitcoin Android is open source software released under the Apache V2 license.

bitcoin-android's People

Contributors

bambar avatar barmstrong avatar brandoniles avatar xslidian avatar

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  avatar  avatar  avatar

bitcoin-android's Issues

Block chain updating problem

Hi.

First it was downloading block chain for three days, crashing from time to time.

And now (when it was only ~6000 block to download) it show status "Syncing with network... 100% 100/100" - this syncing process is taking secound day right now.

I'm using version 1.1 and HTC Desire

Password or pin code protection

Suggestion:

I suggest the possibility to set a pin or a password that has to be provided every time the client is opened. This prevents someone stealing coins if you look away for a moment as well as preventing anyone from seeing my balance.

I noticed "optionally require a pin code to send money for additional security?" in the TODO list. But I think the pin code should be provided upon opening the client rather than when sending money.

Background downloading data

Suggestion:

Would it be possible to implement an option to allow the app to collect the blocks in the background, to minimize the waiting time before the chain is up to date? This way you don't get a long wait time if you have not launched the app in a week or so and then want to make a payment.

Transaction not completing.

Hi, I've sent a micro transaction to test the app but it never sent, I suspect it's the amount I used: .001BTC

But here's the buggy part, as the transaction is still pending, it won't let me send on to any other address for .01 as it tell's me my payment is exceeding what I have, when my balance is fine.

Any suggestions, also it would be cool if people could bother you guys for support outside of github.

Nice project otherwise tho.

Sending Bitcoins

When I open up the sending tab, the camera starts and I see the black box and the red line, but instead of seeing the camera's output, I just see the silver texture used as the background on the homescreen of the app. The app is reading the camera correctly and I have been able to successfully scan a Bitcoin QR code.

I have a Droid X, with the ApeX 2.0 RC2 rom.

Improper use of you're

In the text code there is the following:
You're payment exceeds your current balance. \n\n

Should be Your, not You're

Is this app even working?

It is always stuck in "Connecting to peers..." state. Other client on the same device is able to connect and download blockchain without any problems.

Russian translation

Can't submit code (new to Bithub), so posting here:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">Биткоин</string>
    <string name="send_button">Послать Деньги</string>
    <string name="receive_button">Получить Деньги</string>
    <string name="balance_label">Счет</string>
    <string name="amount_placeholder">5 BTC</string>
    <string name="scan_label">Сканировать QR-код</string>
    <string name="msg_default_status">Сканировать QR-код</string>
    <string name="manual_button_label">Или ввести вручную</string>
    <string name="blank_label"></string>


    <string name="contents_text">Простой текст</string>
    <string name="contents_contact">Контактная информация</string>
    <string name="contents_email">Имейл</string>
    <string name="contents_location">Географические координаты</string>
    <string name="contents_phone">Телефон</string>
    <string name="contents_sms">СМС-адрес</string>

    <string name="pay_request_address_label">Адрес: </string>  
    <string name="pay_request_amount_label">Сумма: </string>
    <string name="pay_request_received_from">Запрос на Платеж От: </string>
    <string name="pay_request">Добрый день,\n\nВы получили запрос биткоин оплаты. Пожалуйста, пришлите средства на следующий адрес.</string>
    <string name="pay_request_thank_you">Спасибо!</string>

    <string name="send_money_payment_successful">Оплата успешная!</string>
    <string name="send_money_ok">Ok</string>
    <string name="send_money_insufficient_funds">Ваш платеж превышает ваш счет. \n\n</string>
    <string name="send_money_xfer_pending">Пожалуйста, подождите пока ожидающие транзакции будут подтверждены, или добавьте дополнительные фонды к своему бумажнику используя кнопку \'Получить Деньги\' на главном экране.</string>
    <string name="send_money_try_funding">Попробуйте финансировать ваш биткоин бумажник с помощью кнопки \'Получить Деньги\' на главном экране.</string>
    <string name="send_money_invalid_address">Неправильный адрес, пожалуйста, попробуйте еще раз.</string>
    <string name="send_money_fail">К сожалению, мы не могли это отправить. Пожалуйста, проверьте вашу сумму и повторите попытку.</string>

    <string name="amount_label">Сумма</string>
    <string name="address_label">Адрес Оплаты</string>
    <string name="memo_label">Заметка (необязательно)</string>
    <string name="send_money_button">Послать</string>
</resources>

Please allow btc.to addresses

$ wget -qO- http://btc.to/1NynqP8o9AEgF355VqbyL8aAWw2YmscDPz && echo
85
$ wget -qO- http://btc.to/85 && echo
1NynqP8o9AEgF355VqbyL8aAWw2YmscDPz
$ 

Cheers,

Blockchain never finishes updating on Motorola Droid running 2.2

I really want to like this app, but unfortunately it never seems to complete the blockchain download on my Motorola Droid running Android 2.2. The Droid is connected on a 3mb Wifi connection and is not rooted. I also tried connecting over 3G. The circle in the upper right corner just continues to spin and I never receive any transactions that are sent to the phone, although the transactions are confirmed in the Windows client I am sending from. I re-installed several times with the same result. Please fix this as I am looking forward to having a real bitcoin wallet on my mobile! Thanks

Use of Android Backup Service Is Insecure

The non-opt out backup of the wallet using Android's backup service is a security hole. The documentation states:

Caution: Because the cloud storage and transport service can differ from device to device, Android makes no guarantees about the security of your data while using backup. You should always be cautious about using backup to store sensitive data, such as usernames and passwords.[1]

Using this backup for the wallet is inappropriate.

[1] http://developer.android.com/guide/topics/data/backup.html

Currency converter

Had a request from a user:

"With real world transactions, it is common to exchange between US$ and BTC. It would be a very useful feature (at least to me) to have a built in, real-time exchange rate/currency converter. Maybe link it to multiple open API markets, such as mtgox. "

pending send 24hrs+

i believe the pending send not being accepted is in relationship to issue 47 of bitcoinj

http://code.google.com/p/bitcoinj/issues/detail?id=47

the bottom comment:

"And this is what happens here. The client tries to send a transaction that was built and put into the pending pool days ago."

so our bitcoins are stuck in limbo trying to submitt to an old block

can we either cancel the current pending send after x retries &| xdays? or have a way to recalc and resubmitt?

maybe a way to rebuild the wallet from the chain so it would leave out the pending transactions

these transaction i speak of are not in bitcoincharts unconfirmed list or blockexplorer so they apear to be local to the device and being rejected by all 8 peers during the resend

i have had this happen on 2 diff devices, one transaction is over a week old and the other just hit the 36hr mark

EDIT:

so im at a loss aparently bitcoin transactions are stateless so rehashing wouldnt work
/**
* Statelessly creates a transaction that sends the given number of nanocoins to address. The change is sent to
* the first address in the wallet, so you must have added at least one key.


*
* This method is stateless in the sense that calling it twice with the same inputs will result in two
* Transaction objects which are equal. The wallet is not updated to track its pending status or to mark the
* coins as spent until confirmSend is called on the result.
*/

but i did try and send another .03 btc to another address and it is hanging as 'pending' as well
might be a problem after the 1.1 update...ill let you know tomorrow

EDIT2:
could we get a way to add a node to always use? such as -addnode=173.242.112.53 for the free transaction relay
im assuming the problem lies in the reuse of small coins and a lack of a transaction fee option in the app

Lost coin after phone reset

I had to reset my phone. I reinstalled Bitcoin [Android], synced the blickchain, and have zero for a balance. Before the reset I had one coin my phone. Seems like the wallet backup was not used. How do I retrieve the backup and reclaim that coin?

Send Money from an Intent

A useful feature may be implement Intent support to allow money to be sent from another application. The Intent could support the Bitcoin Address to send the money to and optional amount and a memo. No money would be sent until the user confirms by pressing Send.

add btc adress book

Please add ability to remember all or some of the payment addresses in an address book to make it easier to send additional payments to same addresses.

process closes upon launch - lost coins!

I have been using this app on 2 separate android devices for a month now. Both are LG phones. Never had any issues.

Now one of the devices (of course the one with the most coins in it) closes every time it is launched

process com.bitcoinandroid has stopped unexpectedly.

Is it possible to retrieve the wallet info from this device before i wipe it and reinstall?

Bitcoin Android version 1.1 on Android 2.2.2

I submitted a crash report to you today (22 Aug)

Lost coins

Hi.

I have accidentally transferred 3.5 BTC instead 0.5 and now my coins are gone.

First I was using 1.0 version, and since there was a problem with downloading block chain, I've decided to update to version 1.1

Still there is no coins and still there is problem with downloading bloc chain.

I must say, that I'm not very happy with this app.

CPU usage 80%+

Like no other app I've seen before it, this one is constantly using from 75%-95% of my phone's CPU also visibly draining the battery. Is it a normal behavior? I can't read code but Is it doing mining calculations?
Also, how is it possible that the entire blockchain fits just 14MB? Is that explained anywhere?

Wallet Export

Had a request from a user to allow exporting the wallet.dat file.

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.