I have built a very basic custom payment gateway that accepts Bitcoin.

I am running a Bitcoin Core node in a Docker container. I have a backend web service that sends rpc calls to this node to read / send transactions. This web service acts as a bridge from my secured web service to my Bitcoin Core node.

I have an iOS app that I use to accept Bitcoin payments. (it consumes the formerly mentioned web service).

When I want to charge the user (in app purchase), I present the user with the amount of their bill and a QR Code (as any merchant payment gateway would do).

I also allow them to automatically copy the information to the clipboard to paste into their crypto exchange for sending. This is usually how they send the transactions. You can’t exactly scan a QR code if it’s on the same device you’ll be sending a payment from (via the Coinbase app or whatever).

Is there a better way to do this that I’m not thinking of? I really want the UX to be smoother. It would be cool if you could auto-open the Coinbase app and pass data to populate the payments screen in Coinbase, so the user can proceed from there. Maybe using iOS universal links? I can’t seem to find anything on the internet about this level of functionality.

  • Hi spencer741, welcome to Bitcoin SE! I'd recommend rewording your question a bit to clarify exactly what you're asking, as it currently comes across as too broad and opinion-based, asking about whether a particular UX is"good" or can be improved. Thanks! Apr 28, 2021 at 19:35

2 Answers 2


I think you may be looking for "Bitcoin Universal Resource Identifiers (URIs)" as specified by BIP21, a standardized string format for bitcoin payment requests.

  • Excellent! Some of this stuff is hard to locate, not knowing specifically what I am looking for.
    – spencer741
    Apr 29, 2021 at 2:13

Unfortunately, your app will most likely get removed from the App Store.

Apples has policy to take a cut for all in-app purchases and so it bans side-channel payments solutions (in this context).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.