Suppose I'm developing a Bitcoin-based Android app. It could do anything: user pays Bitcoins to play a game, order a pizza, accept charitable donations. Whatever it does, it does it in Bitcoins, and it's targeted to people who are Bitcoin savvy and probably already have the ability to access Bitcoins on their Android device. I don't want to deal with the user's wallet, nor do I want the user to have to trust their wallet to my app.

I can think of two ways to do this:

  • 1) there already is a Bitcoin wallet app that runs an Android Provider that my app can access. When I need to send Bitcoins from the wallet, my app communicates with the Provider, and the other app gets the user's approval and protects their wallet from my app stealing their Bitcoins.

  • 2) There is a Bitcoin wallet app that I can send an Android Intent to, and as in #1 that other app confirms the user's approval before any Bitcoins leave the wallet.

So I have two questions:

  • Am I missing another way to do this? To make an app that can send the user's Bitcoins without me touching the wallet directly but using some other app they already trust? (And without cutting and pasting a Bitcoin address.)

  • Assuming this is the way to do it, are there any such Android apps?

A search of Google Play for "Bitcoin" turns up many results, but from a small sample the only ones I've seen that actually transfer Bitcoins seem to work off QR codes or NFC. They will interact with other Android devices, but I don't see one that interacts with other Android apps on the same device. But then again, I doubt the description for end users would have information like that.


The answer is the integration-android subproject of bitcoin-wallet.

Start with the source repository for the Bitcoin Wallet.

The source code for in-app payments is in the BitcoinIntegration.java file, which is under the integration-android directory.

Instructions for compiling this subproject and example source code for using it are given in this slide presentation by Mr. Schildbach

There is also a sample android app that demonstrates this feature.

My thanks to Andreas Schildbach for personally sending me the answer to this question!

  • Which jar files are needed for compile 'integration-android' ? – Kalpesh Apr 20 '15 at 7:22

Have you seen some apps using barcode scanner? I would definitely do it via intent to such app. I haven't seen such a feature, but it should be in some wallets. Please note that people are using QR codes to create Donate! button, so there must be a popular wallet that scans them in order to donate, so it's plausible that you can send an intent to this wallet.

Alternatively, you can create QR code (hidden) in your app, send it to wallet app, which will scan it :). It is not clear solution, but you see it is possible right now. Best regards

  • Sounds good. What's the app? – Adam Mackler Jul 30 '13 at 23:45
  • bitcoin-wallet from Schildbach. It's OS and is also available on Android Market. It can scan QR codes or use NFC to send payments. This is presumably the most popular android wallet: 1st place on Market and 1st place on bitcoin.org in category Mobile Wallets – ripazha Jul 31 '13 at 7:11
  • And how, exactly, does one use an Android device to scan a QR code from the same device? Are you suggesting the user display a QR code on the device then stand in front of a mirror to take a picture or something? Please share your thinking on this matter! – Adam Mackler Jul 31 '13 at 13:55
  • There's no need to go via qr codes. For example, a pizza app could just display an address as text, which you can copy and paste into the wallet app. – Nate Eldredge Oct 31 '13 at 14:22

Your Answer

