Author

Topic: BTC addresses starting with "3" what are they ? simplified explanation. (Read 899 times)

legendary
Activity: 2226
Merit: 6947
Currently not much available - see my websitelink
Friendly bump.  Smiley

I've used your nice explanation how to "detect" nested SegWit addresses as a reference in my list of useful Bitcoin block explorers, I hope it's ok for you. The table is containing a column which block explorers are offering an opportunity to spot nested SegWit addresses - and which block explorers don't do that.
legendary
Activity: 2394
Merit: 6581
be constructive or S.T.F.U
The next 8 addresses all have "Witness data" indicating that those are P2SH-P2WPKH SegWit addresses.
You can view it on the transaction's link above under "input scripts".

True, i confirmed it , only this address is multi-sig ( non- segwit)

Code:
3LgUWbSkwvKoTdn8xexf7GqpVBRLwMs6TE


but i can't understand the relationship between using a multi-sig and "fixed deposit address" , I mean every address on an exchange is somehow a multi-sig, as you always need their "permission" to spend the coin,and users don't even have access to their wallets, so what is the actual point of having a multi-sig address on an exchange like coins.ph ? sorry i am a bit slow  Grin

legendary
Activity: 2534
Merit: 6080
Self-proclaimed Genius
Thanks for pointing this out, do you happen to have any example of online wallets that provide multi-sig legacy address starting with "3" instead of a addresses starting with "1" or actual segwit addresses starting with "3"?
-snip-
I know one local exchange/payment processor that previously provided multisig "3" deposit addresses and later, SegWit "3" addresses for new accounts: Coins.ph/Coins.pro.
They kept the multisig ones because they are using "fixed deposit address", but the user will never distinguish which is which unless they are a bit knowledgeable in "input scripts".

Example transaction made by Coins: 8d3088ebff1dc5554cd3eb747475190b56a9e4264fb8298e8b192f6c713fad0f
The first input address is a multisig address having this redeem script:
Code:
"type": "multisig",
"addresses": [
"1LRqsYChNsC5GmPtyN5bA8t9nL9UtDaCxZ",
"1KL1Q3AoU7fcdAVwKt1HPUwDAuBzEqgop9",
"16WX1TA21fZN2RjWKgDoS9wYe3ubnM498M"
],
"p2sh": "3LgUWbSkwvKoTdn8xexf7GqpVBRLwMs6TE"
The next 8 addresses all have "Witness data" indicating that those are P2SH-P2WPKH SegWit addresses.
You can view it on the transaction's link above under "input scripts".
legendary
Activity: 2394
Merit: 6581
be constructive or S.T.F.U

Thanks for pointing this out, do you happen to have any example of online wallets that provide multi-sig legacy address starting with "3" instead of a addresses starting with "1" or actual segwit addresses starting with "3"?

the reason i ask is because i have not seen any before, the only once to do so would be exchanges as Darkstar_ pointed out

There's a few exchanges that give you multisig addresses. If you created the wallet yourself, chances are it is Segwit.
hero member
Activity: 1680
Merit: 655
Keep in mind that if you are using a BTC address starting in “3” with a web hosted wallet or a local wallet provider then your BTC address is most likely a legacy address. Most local wallet providers which are company operated crypto wallets are using legacy address and they don't have an integration yet with segwit addresses ever since they kept their address management on a server. So if you have a “3” starting BTC address without any memory of creating a segwit address then most likely you have a legacy address.
full member
Activity: 924
Merit: 221
So this explain why local exchange here in our country using the 3 as the starting for the btc address for the wallets. Never was it known to myself that this is all about.

This is why also local excahnge has higher transaction fee compared to other exchange. Our local exchange has more or less 5% of its transaction will be a transaction fee to which 5% is huge plus another transaction fee when one going to convert and cash out bitcoin. Double transaction fee will be deducted upon doing the process.
legendary
Activity: 2030
Merit: 1569
CLEAN non GPL infringing code made in Rust lang
There's no issues regarding bc1 address to legacy address transactions.
Vice Versa has a problem if the wallet/exchange hasn't been updated to support native SegWit addresses.

Here's one for example: 7242816901983a5fe62d937ccc0581ae2711f8ed275d8cf7c695d0b930c553a4

Is there any list (of shame) maintained somewhere about sites that still don't support bc1? I need for example localbitcoins support, but given they use addresses beginning with 3 for deposits, i imagine you can't withdraw to bc1 addresses from there...
legendary
Activity: 3472
Merit: 10611
Not really, it does not matter to what address you send, it is about what you send from, i see no direct benefit for campaign managers but helping with segwit adoption and helping their members save fees when they spend their earnings.

there is benefits as the transaction size they are sending will also decrease, although a small amount.
look at the last payment you received from your signature campaign. your manager paid 60 participants so 60 txOuts. when he is creating a new P2PKH output (address starting with 1) like the second output, he is creating this script:
Code:
76 a9 14 <20 bytes> 88 ac
which is 25 bytes long.
but when he is creating a new P2WPKH (paying an address starting with bc1) like the 4th output he is creating this script
Code:
00 14 <20 bytes>
which is 22 bytes long.

so for each participant that is using SegWit he is saving on 3 bytes and for 60 participants it can be up to 180 bytes which is nearly the size of the most common transactions in bitcoin with 1 input and 2 outputs.
legendary
Activity: 2534
Merit: 6080
Self-proclaimed Genius
-snip-
But sending funds from a native segwit to legacy address has problem as far as I know, though I have never tried them.
Same here, I did not find anything in the net that says against it. I just see it as a method for popularizing segwit.
There's no issues regarding bc1 address to legacy address transactions.
Vice Versa has a problem if the wallet/exchange hasn't been updated to support native SegWit addresses.

Here's one for example: 7242816901983a5fe62d937ccc0581ae2711f8ed275d8cf7c695d0b930c553a4
sr. member
Activity: 742
Merit: 395
I am alive but in hibernation.
Maybe there are other reasons which i am not aware of.


It is allowed to do legacy to segwit transaction and vice versa, so why they put emphasis on Segwit address on end user side?
Yes, segwit is backward compatible. You would have no issues in sending funds from legacy to segwit but I assume there won't be any difference in the weight of the transaction probably. But sending funds from a native segwit to legacy address has problem as far as I know, though I have never tried them.

Same here, I did not find anything in the net that says against it. I just see it as a method for popularizing segwit.
legendary
Activity: 1584
Merit: 1280
Heisenberg Design Services
Adding some more points to OP,

In case of wallets like electrum, while you are creating a wallet you can choose between legacy addresses or native segwit addresses. A standard transaction with a legacy address has higher fee since they have higher weight when compared to the segwit transactions. A legacy transaction has higher weight and hence they consume larger size in the block. We can never add higher number of transactions in a block. Whereas in segwit transactions since the witnesses have been removed they are lesser in weight and hence more number of transactions can be filled inside a block. By this way we can increase the scalability of the network to a larger extent if every one of us use segwit addresses. At an average rate, 60% of the weight is reduced in a segwit transaction.

Till last month, I had a strong misconception that segwit transactions has lesser size when compared to the legacy transactions. This isn't, segwit never reduces the size of the transaction they just reduces the weight which in turn helps the miners in adding more number of transactions to the block.

Another thing is that, some newbies still believe that multi signature and a segwit is one or the other way similar. If you have a multi signature address, you along with other addresses control the funds and our signature alone aren't enough to release the funds. For instance, you have around $10,000 but afraid to hold them with you. In this case, we can create and load a multi sig address , where more than 2 or 3 signatures are required to release the funds. Here is an old post of mine giving an insight on how multi-signature works.

It is allowed to do legacy to segwit transaction and vice versa, so why they put emphasis on Segwit address on end user side?
Yes, segwit is backward compatible. You would have no issues in sending funds from legacy to segwit but I assume there won't be any difference in the weight of the transaction probably. But sending funds from a native segwit to legacy address has problem as far as I know, though I have never tried them.
legendary
Activity: 2394
Merit: 6581
be constructive or S.T.F.U
Pardon my noob question but what benefit Campaign managers are having in sending payment to Segwit addresses?

It is allowed to do legacy to segwit transaction and vice versa, so why they put emphasis on Segwit address on end user side?
Number one benefit is the saving/reduction of transaction fees, yet it is already low.


Not really, it does not matter to what address you send, it is about what you send from, i see no direct benefit for campaign managers but helping with segwit adoption and helping their members save fees when they spend their earnings.

In fact it could be of a trouble for the managers if the wallet they use does not support segwit, it's easier to send to legacy in terms of compatibility.  

Maybe there are other reasons which i am not aware of.
sr. member
Activity: 375
Merit: 1021
Just in case no one loves you, I love you 3000.
Pardon my noob question but what benefit Campaign managers are having in sending payment to Segwit addresses?

It is allowed to do legacy to segwit transaction and vice versa, so why they put emphasis on Segwit address on end user side?
Number one benefit is the saving/reduction of transaction fees, yet it is already low.
sr. member
Activity: 742
Merit: 395
I am alive but in hibernation.
Pardon my noob question but what benefit Campaign managers are having in sending payment to Segwit addresses?

It is allowed to do legacy to segwit transaction and vice versa, so why they put emphasis on Segwit address on end user side?
legendary
Activity: 1638
Merit: 1163
Where is my ring of blades...
I can sefely say Localbitcoins and Paxful can receive from Bech32 addresses, I know I did it, unlike what is said on the page https://en.bitcoin.it/wiki/Bech32_adoption

that is not what that page is saying because it doesn't matter whether they have upgraded their system to support SegWit or not, they can receive coins without it because it is not their concern what transaction type is sending them coins.
what involves them is when you are entering a bech32 address (bc1q...) in their platform while withdrawing. since they have not upgraded their platform it won't recognize this new address encoding.
sr. member
Activity: 1192
Merit: 260
Tryig to survive in this harsh world
-Using Segwit address starting with "3" you can save 26% on fees,  using segwit address that start with "bc1" known as (Native Segwit) you save 38% on fees.
With some adjustment regarding these ratios, you can save up to 75%.
For segwit transactions it depends on the transaction.

A typical transaction of one input, two outputs is 226 bytes legacy, 166 vbytes P2SH-P2WPKH segwit (27% less), 141 vbytes pure bech32 P2WPKH segwit (38% less).

If you have many inputs, the savings are larger (and less for many outputs). For 10 input, 1 output legacy is 1515 bytes, 953 vbytes P2SH-P2WPKH (37% less), and 722 vbytes P2WPKH (52% less).

Multisignature transactions benefit even more. Multiinput 2 of 3 multisignature transactions in bech32 P2WPKH segwit are 75% smaller.


-Some people think you can not sign a message using a segiwt address and that's why they don't use it, which is not true anymore, you can sign messages from a segwit address both that start with "3" and "bc1".
It is not the only reason, many people avoid these addresses "especially [bc1]" because some platforms and explorers do not support sending or displaying it  ----> Bitfinex, Bisq, Localbitcoins.com,Tradeblock, ...etc  Full list here ----> https://en.bitcoin.it/wiki/Bech32_adoption.

I can sefely say Localbitcoins and Paxful can receive from Bech32 addresses, I know I did it, unlike what is said on the page https://en.bitcoin.it/wiki/Bech32_adoption
Also I think they both enabled sending to bc1 addresses, at least for Localbitcoins I am sure as I did it also.
That's just to say the list is not 100% up to date.
legendary
Activity: 2702
Merit: 4002
-Using Segwit address starting with "3" you can save 26% on fees,  using segwit address that start with "bc1" known as (Native Segwit) you save 38% on fees.
With some adjustment regarding these ratios, you can save up to 75%.
For segwit transactions it depends on the transaction.

A typical transaction of one input, two outputs is 226 bytes legacy, 166 vbytes P2SH-P2WPKH segwit (27% less), 141 vbytes pure bech32 P2WPKH segwit (38% less).

If you have many inputs, the savings are larger (and less for many outputs). For 10 input, 1 output legacy is 1515 bytes, 953 vbytes P2SH-P2WPKH (37% less), and 722 vbytes P2WPKH (52% less).

Multisignature transactions benefit even more. Multiinput 2 of 3 multisignature transactions in bech32 P2WPKH segwit are 75% smaller.


-Some people think you can not sign a message using a segiwt address and that's why they don't use it, which is not true anymore, you can sign messages from a segwit address both that start with "3" and "bc1".
It is not the only reason, many people avoid these addresses "especially [bc1]" because some platforms and explorers do not support sending or displaying it  ----> Bitfinex, Bisq, Localbitcoins.com,Tradeblock, ...etc  Full list here ----> https://en.bitcoin.it/wiki/Bech32_adoption.
legendary
Activity: 2226
Merit: 6947
Currently not much available - see my websitelink
I think your method works when the address starting with "3" is mine, but what if it's not ? like I have an address starting with 3 on Localbitcoins and another one like it on Paxful where I deposit for my trades.
It's always possible to check if the address has an outgoing transaction. If there is one it's possible to verify it on every block explorer showing witness data.

My Segwit addresses on Electrum are all starting with "bc1" I thought those were the only "real" Segwit addresses.
bc1... addresses are native SegWit addresses (bech32) but SegWit addresses starting with 3... are also SegWit (nested SegWit). I don't know if we can call bech32 "the only real" SegWit because the other ones are also SegWit and there are not really "unreal" SegWit addresses aside from Multisig and Legacy.
Differences are mainly that bech32 are case-insensitive and fees are again lower with bech32 compared to P2SH-SegWit. And before SegWit was introduced bech32 addresses didn't exist.
sr. member
Activity: 1192
Merit: 260
Tryig to survive in this harsh world
I think your method works when the address starting with "3" is mine, but what if it's not ? like I have an address starting with 3 on Localbitcoins and another one like it on Paxful where I deposit for my trades.
My Segwit addresses on Electrum are all starting with "bc1" I thought those were the only "real" Segwit addresses.
legendary
Activity: 2226
Merit: 6947
Currently not much available - see my websitelink
I was also thinking this is a bit overkill for beginners.
For beginners it's a very good guide in my opinion, it's kept simple and listed only the relevant points.



If you want you can add this site here, blockchair.com displays segwit status as default:

Example:

SegWit: https://blockchair.com/bitcoin/transaction/db6d2b441a5964cd4c3ccdb7316738b020def1fdf2726201f07cc74016844e50
Non-SegWit: https://blockchair.com/bitcoin/transaction/b4262cc5ac3be3899c6d840408eb4252c150bdf82534921360aa5946ded9d62a

(check has witness data?)

 
SegWit No SegWit
_____________________________________________________________________________________________________________________________
legendary
Activity: 2030
Merit: 1569
CLEAN non GPL infringing code made in Rust lang
I was also thinking this is a bit overkill for beginners. In fact multi-sig addresses is something most people can ignore completely and might never see for years.

In an ideal world everyone should be using bech32 addresses already, but then you will still have to warn people SegWit addresses might start with a 3 as well as a bc1 for "legacy" reasons.

And what about those legacy Litecoin addresses starting with 3?

From a newbie perspective this is a mess, the definite fix IS bc1 but old wallets can't work with them so "just in case" we still use those starting with 3... But we shouldn't.


True content for this thread would be something along these lines:

TL;DR: Addresses starting with 3 are (very likely) SegWit, but they could rarely be multi-sig and extremely rarely, legacy Litecoin addresses.
Those starting with bc1 are (definitely) Bitcoin SegWit and should be used in most situations unless an outdated wallet or site still won't recognize it as a valid Bitcoin address.
legendary
Activity: 3472
Merit: 10611
but to be 100% certain, you need to send some BTC from that address first, once you do , follow this simple guide (Thanks @DarkStar_) https://bitcointalksearch.org/topic/m.50604626
when you are the one who created that wallet (address) then you already know the type of address that you have created, you don't need to send coins to figure it out!


Quote
-Some people think you can not sign a message using a segiwt address and that's why they don't use it, which is not true anymore, you can sign messages from a segwit address both that start with "3" and "bc1".
you can sign a message with any private key or keys that you have and were involved in creation of an address (in other words you can even sign a message from a multisig address), however the problem is not the capability of signing, the problem is lack of standard so that when you sign a message others could verify it.
legendary
Activity: 2394
Merit: 6581
be constructive or S.T.F.U
Sometimes when you want to apply for a signature campaign, the manager will ask you to use a Segwit address, in this topic i am not going into details of what is Segwit or how it works.

I noticed that this discussion takes place almost every time a new spot opens in ChipMixer signature campaign thread, @o_e_l_e_o made a good brief explanation on what does the first letter/s in BTC address mean, but i decided to explain it a bit more in away that even a newbie who has no idea about all of this can (hopefully) understand.

Addresses which start with "3" are P2SH and may or may not be Segwit. You can't tell for sure until coins from that address have been spent and you check the transaction's scripts.


in simple English the above means that address starting with 3 can be Sewgit, or a Multi-signature Non-Segwit address ( that's pretty much all you need to understand for now)


so how can you tell if your address that starts with "3" is actually segwit.?


Most wallets that provide you an address that starts with "3" is actually a Segwit address known as ( P2SH-wrapped segwit) and not a Multisig address unless of course stated so.


but to be 100% certain, you need to send some BTC from that address first, once you do , follow this simple guide (Thanks @DarkStar_) https://bitcointalksearch.org/topic/m.50604626



1- Go to blockchain.com
2- copy-paste the transaction id

and something like this will appear




notice how the 3rd address from the top starts with "3" and the input scripts shows (witness) which means it's a segwit address.

on some explorers it does not show the word "witness" so you need to look for (P2SH).



-Notice that the campaign manager/s won't do that for you because it makes no difference to them in terms of fees, it's you who would enjoy a  great amount of discount on fees when you spend your BTC.

-Using Segwit address starting with "3" you can save 26% on fees,  using segwit address that start with "bc1" known as (Native Segwit) you save 38% on fees.

-Some people think you can not sign a message using a segiwt address and that's why they don't use it, which is not true anymore, you can sign messages from a segwit address both that start with "3" and "bc1".
Jump to: