Are there any implementations of a Bitcoin client that would run over HTTP, allowing one to communicate by, for example, sending raw message bytes as a POST?

Edit: I'm not looking for ways to control a Bitcoin client remotely, for example telling it to send some of the coins it is holding, encrypt a wallet or the like. What I want to find is a server that takes HTTP calls and answers back similarly to how the Bitcoin client would. For example, providing its block chain, exchanging list of pending transactions, accepting signed transactions from outside, etc.

  • This would be useful for operating within something like a corporate intranet where the firewall blocks most traffic. Dec 6, 2011 at 21:34
  • 1
    Or for servers that don't allow for TCP/IP connectivity (for example, I'm struggling with Google App Engine, probably in the end I'll create some web service that will bridge between TCP/IP and HTTP).
    – ThePiachu
    Dec 6, 2011 at 21:58
  • See also related or identical question I just asked: bitcoin.stackexchange.com/questions/2333/…
    – ripper234
    Dec 28, 2011 at 23:33

2 Answers 2


The exit node part of BitcoinJS is sort of what you're looking for. Quote from wiki:

There are two main ways clients can interact with exit nodes:

  • REST API – HTTPS-based asynchronous API usable with almost any language or platform.
  • Socket API – Socket-based API providing realtime data events via JSON-RPC and – using Socket.IO – even for pure browser-based clients.

Example of using the REST API:

https://exit.trucoin.com:3125/pubkeys/register?keys=1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa registers a public key to get a handle.

https://exit.trucoin.com:3125/pubkeys/gettxs?handle=ManS6KcKCR1lpY0qCPiDOr9ej6HXQcVADFOMOGaMuD4= uses that handle to get the transactions of the address.

It should also be possible to send a transaction but that part is not very well documented.


To the best of my knowledge, there is not. I did, however (shameless plug) contribute some Python scripts to the official client a while back which could easily be coupled with Python's very simple HTTP Server module to perform the tasks you're after. I know it's more of a workaround than an official in-client feature, but it should work.

Your Answer

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

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