<blockquote>
  <p>I'm using the HTTP post version of the Stratum protocol and content type "application/stratum".</p>
</blockquote>

<p>The HTTP version of stratum isn't supported in the later server versions, it's unlikely you'll be able to use them in any sort of capacity in the future. When connecting to the TCP+SSL version of electrum-server your command works perfectly, though the block height field in your example should be an integer and not a string. </p>

<pre><code>telnet electrum.be 50001
Trying 88.198.241.196...
Connected to electrum.be.
Escape character is '^]'.
{ "id": 1, "method": "blockchain.transaction.get_merkle", "params": [ "967d009ee103340d6762819ebf452107561423fe97b04fbf501594f231e212c4", 369863 ] }
{"id": 1, "result": {"merkle": ["d844420b0f01398953b809b844bc9a5987f41d1373dab3180b6b4fe4de8633c4", "3c1f63dae13e84aaba94d6ee12c7b48fa7b470eacfbe6e183ba008b7cbc3725c", "0c5141f62f1ad58a6ebcee98868451ff392bc49bfb6daa5e4f492b6d175812cf", "e414fd7ee39a83b7bd524f98ed09efa279a97fecbeeca68087de384eda71fc31", "47fbf181989f2549d0d7a9fee2337ea60295059df0c0267cca173fd43b8e8596", "bc441c955a6d9bc629e3a8e428aa7670d2bf631a9d11887bb4ad6b534fcf4817", "1985800e12a150e6196ac07119278ea84ad296f1d8b2c88b2c85f61035f6a7cd", "fc02dfab3083ca9185bce4e8b9357b5aacacce2172c969ac543da04eaa1c0c1d", "6a36f10f34da6d66fdf75d4d97e0796106e7594409d354b8419a248231ab6935", "cbc02af67b294fe7bad08a69f9435b520f8f89fa221583e0a84c8d9c9dc469a0", "1043c7a6b9b4c42243e84a49a1f40476692b5d36d2f64dfb14409490ca3dfad2", "fbbaec1ca9d29ba9ee6a89214428556827b4e5a254de59de5adabbabb2621f54"], "pos": 2917, "block_height": 369863}}
</code></pre>

CC BY-SA 3.0
2015-09-19T12:48:45.477Z
If I may ask, how do you know this? I'm having a hell of a time finding information/documentation, so many dead links and everything is 2+ years old!
Martin Clemens Bloch
CC BY-SA 3.0
2015-09-19T13:17:26.463Z
It's fairly similar to the stratum mining protocol, the whole thing is just JSON commands stuffed through TCP with a newline delimiter. You can play around with the Electrum client and wireshark to get an idea of what it is doing, and it's simple enough that you can interact with the servers using `telnet` or `nc`. Browsing the [electrum-server](https://github.com/spesmilo/electrum-server/) source is very useful as well, even if you don't have a deep familiarity with Python.
Claris
CC BY-SA 3.0
2015-09-19T13:30:16.510Z
Right.. if you know you need to use telnet! Anyway thanks I verified your answer works.
Martin Clemens Bloch
CC BY-SA 3.0
2015-09-19T10:59:31.533Z
2015-09-19T10:59:31.533Z
Claris
<p>I need to get the merkle branch quickly for a known TX.</p>

<p>I have connected to various stratum servers, but whenever I send the method below I get "HTTP code 405 - Method not allowed".</p>

<pre><code>{ \"id\": 1, \"method\": \"blockchain.transaction.get_merkle\", \"params\": [ \"967d009ee103340d6762819ebf452107561423fe97b04fbf501594f231e212c4\", \"369863\" ] }
</code></pre>

<p>I'm using the HTTP post version of the Stratum protocol and content type "application/stratum".</p>

<p>The question is how do I make this work?</p>

<electrum><stratum><merkle-tree><http>
How do I get merkle branches using the Stratum protocol?
Martin Clemens Bloch
# How do I get merkle branches using the Stratum protocol?

(Asked by: username_0 on 2015-09-16)

I need to get the merkle branch quickly for a known TX.
I have connected to various stratum servers, but whenever I send the method below I get "HTTP code 405 - Method not allowed".
{ \"id\": 1, \"method\": \"blockchain.transaction.get_merkle\", \"params\": [ \"967d009ee103340d6762819ebf452107561423fe97b04fbf501594f231e212c4\", \"369863\" ] }

I'm using the HTTP post version of the Stratum protocol and content type "application/stratum".
The question is how do I make this work?

**Tags:** electrum, stratum, merkle-tree, http


---

## 1 answers

### Answer by username_1 on 2015-09-19. Score: 2 | Accepted answer

I'm using the HTTP post version of the Stratum protocol and content type "application/stratum".

The HTTP version of stratum isn't supported in the later server versions, it's unlikely you'll be able to use them in any sort of capacity in the future. When connecting to the TCP+SSL version of electrum-server your command works perfectly, though the block height field in your example should be an integer and not a string. 
telnet electrum.be 50001
Trying 88.198.241.196...
Connected to electrum.be.
Escape character is '^]'.
{ "id": 1, "method": "blockchain.transaction.get_merkle", "params": [ "967d009ee103340d6762819ebf452107561423fe97b04fbf501594f231e212c4", 369863 ] }
{"id": 1, "result": {"merkle": ["d844420b0f01398953b809b844bc9a5987f41d1373dab3180b6b4fe4de8633c4", "3c1f63dae13e84aaba94d6ee12c7b48fa7b470eacfbe6e183ba008b7cbc3725c", "0c5141f62f1ad58a6ebcee98868451ff392bc49bfb6daa5e4f492b6d175812cf", "e414fd7ee39a83b7bd524f98ed09efa279a97fecbeeca68087de384eda71fc31", "47fbf181989f2549d0d7a9fee2337ea60295059df0c0267cca173fd43b8e8596", "bc441c955a6d9bc629e3a8e428aa7670d2bf631a9d11887bb4ad6b534fcf4817", "1985800e12a150e6196ac07119278ea84ad296f1d8b2c88b2c85f61035f6a7cd", "fc02dfab3083ca9185bce4e8b9357b5aacacce2172c969ac543da04eaa1c0c1d", "6a36f10f34da6d66fdf75d4d97e0796106e7594409d354b8419a248231ab6935", "cbc02af67b294fe7bad08a69f9435b520f8f89fa221583e0a84c8d9c9dc469a0", "1043c7a6b9b4c42243e84a49a1f40476692b5d36d2f64dfb14409490ca3dfad2", "fbbaec1ca9d29ba9ee6a89214428556827b4e5a254de59de5adabbabb2621f54"], "pos": 2917, "block_height": 369863}}

> **Comments:**
> **username_0**: If I may ask, how do you know this? I'm having a hell of a time finding information/documentation, so many dead links and everything is 2+ years old!  
> **username_1**: It's fairly similar to the stratum mining protocol, the whole thing is just JSON commands stuffed through TCP with a newline delimiter. You can play around with the Electrum client and wireshark to get an idea of what it is doing, and it's simple enough that you can interact with the servers using `telnet` or `nc`. Browsing the [electrum-server](https://github.com/spesmilo/electrum-server/) source is very useful as well, even if you don't have a deep familiarity with Python.  
> **username_0**: Right.. if you know you need to use telnet! Anyway thanks I verified your answer works.  

---

