<p>The difference between a main net and test net address is exactly the first byte (and of course the checksum). The base58 encoding method is not different, but due to the first byte being different (and 256 doesn't divide by 58), the whole address does look different. For example:</p>

<pre><code>Public key: 03919f9806cd4d07b588b14bcf7f5e8466d1c59f3694eb24101bbf59b91f933bfa
Main net address: 1KHL3He8D171NX8MpLH4XGsBqBjMmEDrHC
Test net address: myoHLLj722YG9dbyXuFSMC5WhBL4h7nqhs
</code></pre>

<p>I can't say what your problem was attempting the testnet transaction as you haven't given any details but there are no great differences between the two (raw transaction format or address formats etc.) or it wouldn't be much use as a test.</p>

CC BY-SA 3.0
2017-12-29T17:02:56.913Z
The issue was with creating the public address but I figured it out. So there's no difference at all when creating a testnet transaction?
user2298995
CC BY-SA 3.0
2017-12-29T17:04:35.200Z
I doubt it, like I said, wouldn't be that useful as a test if you had to change a load of stuff, but just try it.
weston
CC BY-SA 3.0
2017-12-28T16:34:11.037Z
2017-12-28T16:34:11.037Z
weston
<p>I managed to write a piece of code that generates a bitcoin address and creates a transaction. I would like to make some tests on the testnet but it seems to lack some documentation. So far I figured that we use a different version 0xEF (rather than 0x80) when creating a WIF key, and that we use a net byte of 0x6F (rather than 0x00) when creating a public address from the public key.</p>

<p>What other differences are there? The differences I mentioned above are not sufficient to create a valid public address it appears. Maybe the base58 encoding is different? What about raw transactions?</p>

CC BY-SA 3.0
2017-12-28T15:11:13.480Z
`The differences I mentioned above are not sufficient to create a valid public address it appears.`

How have you come to that conclusion?
weston
<testnet>
Practical difference between mainnet and testnet
user2298995
# Practical difference between mainnet and testnet

(Asked by: username_0 on 2017-12-28)

I managed to write a piece of code that generates a bitcoin address and creates a transaction. I would like to make some tests on the testnet but it seems to lack some documentation. So far I figured that we use a different version 0xEF (rather than 0x80) when creating a WIF key, and that we use a net byte of 0x6F (rather than 0x00) when creating a public address from the public key.

What other differences are there? The differences I mentioned above are not sufficient to create a valid public address it appears. Maybe the base58 encoding is different? What about raw transactions?

**Tags:** testnet

> **Comments:**
> **username_1**: `The differences I mentioned above are not sufficient to create a valid public address it appears.`  How have you come to that conclusion?  

---

## 1 answers

### Answer by username_1 on 2017-12-28. Score: 1 | Accepted answer

The difference between a main net and test net address is exactly the first byte (and of course the checksum). The base58 encoding method is not different, but due to the first byte being different (and 256 doesn't divide by 58), the whole address does look different. For example:

```
Public key: 03919f9806cd4d07b588b14bcf7f5e8466d1c59f3694eb24101bbf59b91f933bfa
Main net address: 1KHL3He8D171NX8MpLH4XGsBqBjMmEDrHC
Test net address: myoHLLj722YG9dbyXuFSMC5WhBL4h7nqhs

```

I can't say what your problem was attempting the testnet transaction as you haven't given any details but there are no great differences between the two (raw transaction format or address formats etc.) or it wouldn't be much use as a test.

> **Comments:**
> **username_0**: The issue was with creating the public address but I figured it out. So there's no difference at all when creating a testnet transaction?  
> **username_1**: I doubt it, like I said, wouldn't be that useful as a test if you had to change a load of stuff, but just try it.  

---

