> For the complete documentation index, see [llms.txt](https://hub.bsvblockchain.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hub.bsvblockchain.org/wiki/addresses-and-wallets/bitcoin-address/wallet-import-format-wif.md).

# Wallet Import Format (WIF)

Wallet Import Format (WIF, also known as Wallet Export Format) is a way of encoding a private ECDSA key to make it easier to copy. A testing suite is available for encoding and decoding of WIF at: <http://gobittest.appspot.com/PrivateKey>

1. Private key to WIF 1 - Take a private key 0C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D 2 - Add a 0x80 byte in front of it for mainnet addresses or 0xef for testnet addresses. Also add a 0x01 byte at the end if the private key will correspond to a compressed public key 800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D 3 - Perform SHA-256 hash on the extended key 8147786C4D15106333BF278D71DADAF1079EF2D2440A4DDE37D747DED5403592 4 - Perform SHA-256 hash on result of SHA-256 hash 507A5B8DFED0FC6FE8801743720CEDEC06AA5C6FCA72B07C49964492FB98A714 5 - Take the first 4 bytes of the second SHA-256 hash, this is the checksum 507A5B8D 6 - Add the 4 checksum bytes from point 5 at the end of the extended key from point 2 800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D507A5B8D 7 - Convert the result from a byte string into a base58 string using Base58Check encoding. This is the Wallet Import Format 5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ
2. WIF to private key 1 - Take a Wallet Import Format string 5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ 2 - Convert it to a byte string using Base58Check encoding 800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D507A5B8D 3 - Drop the last 4 checksum bytes from the byte string 800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D 4 - Drop the first byte (it should be 0x80). If the private key corresponded to a compressed public key, also drop the last byte (it should be 0x01). If it corresponded to a compressed public key, the WIF string will have started with K or L instead of 5 (or c instead of 9 on testnet). This is the private key. 0C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D
3. WIF checksum checking 1 - Take the Wallet Import Format string 5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ 2 - Convert it to a byte string using Base58Check encoding 800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D507A5B8D 3 - Drop the last 4 checksum bytes from the byte string 800C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D 3 - Perform SHA-256 hash on the shortened string 8147786C4D15106333BF278D71DADAF1079EF2D2440A4DDE37D747DED5403592 4 - Perform SHA-256 hash on result of SHA-256 hash 507A5B8DFED0FC6FE8801743720CEDEC06AA5C6FCA72B07C49964492FB98A714 5 - Take the first 4 bytes of the second SHA-256 hash, this is the checksum 507A5B8D 6 - Make sure it is the same, as the last 4 bytes from point 2 507A5B8D 7 - If they are, and the byte string from point 2 starts with 0x80 (0xef for testnet addresses), then there is no error.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hub.bsvblockchain.org/wiki/addresses-and-wallets/bitcoin-address/wallet-import-format-wif.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
