<p>The only way is to see if any outputs for that address have been spent before, and then looking at the spending transaction(s). Those spending transactions will contain the scripts and public keys for that address.</p>
<p>Otherwise, no, it is not possible. Addresses are constructed by hashing public keys or scripts, and one of the key properties of hash functions is that they are not reversible. So you cannot take the hash encoded by an address and compute what was hashed (i.e. the public key or script).</p>

CC BY-SA 4.0
2020-10-09T00:57:01.833Z
So does it mean that a bitcoin address that actually has an incoming transaction but no outgoing transaction doesn't typically have a public key?
Dave Kent 
CC BY-SA 4.0
2020-10-09T01:10:52.710Z
And I almost forgot... Is there any way I could use the public key I have to track the address which the public key has been specified to?
Dave Kent 
CC BY-SA 4.0
2020-10-09T02:59:34.793Z
Every public key hash type address (1... and shorter bc1q... addresses) have a public key. Only once there are outgoing addresses is the public key put into the blockchain for everyone to see. Likewise, if you have a public key, you can compute the addresses for that public key.
Ava Chow
CC BY-SA 4.0
2020-10-09T00:49:20.467Z
2020-10-09T00:49:20.467Z
Ava Chow
<p>Is there any way to discover/ find out the public key of a specific bitcoin address? If not, are there any available tools online to help find the public key of a specific bitcoin address?</p>

<address><public-key>
Is there any available way to discover/find the public key of a specific address?
Dave Kent 
# Is there any available way to discover/find the public key of a specific address?

(Asked by: username_0 on 2020-10-08)

Is there any way to discover/ find out the public key of a specific bitcoin address? If not, are there any available tools online to help find the public key of a specific bitcoin address?

**Tags:** address, public-key


---

## 1 answers

### Answer by username_1 on 2020-10-09. Score: 3 | Accepted answer

The only way is to see if any outputs for that address have been spent before, and then looking at the spending transaction(s). Those spending transactions will contain the scripts and public keys for that address.

Otherwise, no, it is not possible. Addresses are constructed by hashing public keys or scripts, and one of the key properties of hash functions is that they are not reversible. So you cannot take the hash encoded by an address and compute what was hashed (i.e. the public key or script).

> **Comments:**
> **username_0**: So does it mean that a bitcoin address that actually has an incoming transaction but no outgoing transaction doesn't typically have a public key?  
> **username_0**: And I almost forgot... Is there any way I could use the public key I have to track the address which the public key has been specified to?  
> **username_1**: Every public key hash type address (1... and shorter bc1q... addresses) have a public key. Only once there are outgoing addresses is the public key put into the blockchain for everyone to see. Likewise, if you have a public key, you can compute the addresses for that public key.  

---

