<p>Here is an example of how to generate the public/private keys using the cardano-serialization-lib</p>
<p><a href="https://github.com/Emurgo/cardano-serialization-lib/blob/master/doc/getting-started/generating-keys.md" rel="nofollow noreferrer">https://github.com/Emurgo/cardano-serialization-lib/blob/master/doc/getting-started/generating-keys.md</a></p>
<p>You can install this lib in ReactJs, or similar and generate the keys</p>
<p>Alterantively I have a few examples of how to do this and a few other fucntions here:
<a href="https://github.com/dynamicstrategies/cardano-wallet-functions" rel="nofollow noreferrer">https://github.com/dynamicstrategies/cardano-wallet-functions</a></p>

CC BY-SA 4.0
2022-02-15T20:17:40.147Z
2022-02-15T20:17:40.147Z
D S
<p>Cardano uses a similar BIP-32/39/44 structure as bitcoin and ethereum, so you can use the same mnemonic seed phrase to derive your HD keys as you do on the other blockchains.</p>
<p>To do so manually, I'd recommend installing the <a href="https://github.com/input-output-hk/cardano-wallet" rel="nofollow noreferrer"><code>cardano-wallet</code></a> software - it comes with all the tools necessary for deriving all key types (most notably. <code>cardano-address</code> and <code>bech32</code>. Refer to the <a href="https://input-output-hk.github.io/cardano-wallet/" rel="nofollow noreferrer">official cardano-wallet documentation</a> for instructions on how to derive the keys/manage addresses, or, when installed, just run <code>cardano-wallet --help</code> for brief descriptions of all the commands.</p>
<p>To be clear: <code>cardano-address</code> is the low level module that gives you fine control over public/private key derivation, and <code>cardano-cli</code> can then used to construct individual addresses (including staking addresses). Alternatively, you can use <code>cardano-wallet</code> to construct entire sets of addresses, and have their UTXOs automatically managed for you.</p>

CC BY-SA 4.0
2022-02-15T16:58:57.197Z
2022-02-15T16:58:57.197Z
zhekson
<p>I am starting development with Cardano. I have created a Hierarchal Deterministic Wallet with both Bitcoin and Ethereum, so I am familiar with much of the terminology. I am trying to create a Cardano wallet, exclusive from cardano-node and wallet, instead using Blockfrost API. However, after deriving a keypair through ED25519, I am not sure the next steps. Bitcoin had a lot of documentation on how an address is created from the key, so it was fairly simple. I cannot find much on Cardano. Cardano states that...</p>
<p><code>The addresses are a blake2b-256 hash of the relevant verifying/public keys concatenated with some metadata that can be stored on the Cardano blockchain.</code></p>
<p>Im not sure what &quot;some&quot; metadata is, or how to even go about creating an address. Also I am hoping to create a testnet address if that matters. Thanks!</p>

<wallet><testnet><address><blake2b><ed25519>
Create address from public/private keypair without external tools/apis
# Create address from public/private keypair without external tools/apis

(Asked by: username_0 on 2022-02-15)

I am starting development with Cardano. I have created a Hierarchal Deterministic Wallet with both Bitcoin and Ethereum, so I am familiar with much of the terminology. I am trying to create a Cardano wallet, exclusive from cardano-node and wallet, instead using Blockfrost API. However, after deriving a keypair through ED25519, I am not sure the next steps. Bitcoin had a lot of documentation on how an address is created from the key, so it was fairly simple. I cannot find much on Cardano. Cardano states that...

`The addresses are a blake2b-256 hash of the relevant verifying/public keys concatenated with some metadata that can be stored on the Cardano blockchain.`

Im not sure what "some" metadata is, or how to even go about creating an address. Also I am hoping to create a testnet address if that matters. Thanks!

**Tags:** wallet, testnet, address, blake2b, ed25519

---

## 2 answers

### Answer by username_1 on 2022-02-15. Score: 1 | Accepted answer

Here is an example of how to generate the public/private keys using the cardano-serialization-lib

<https://github.com/Emurgo/cardano-serialization-lib/blob/master/doc/getting-started/generating-keys.md>

You can install this lib in ReactJs, or similar and generate the keys

Alterantively I have a few examples of how to do this and a few other fucntions here:
<https://github.com/dynamicstrategies/cardano-wallet-functions>


---

### Answer by username_2 on 2022-02-15. Score: 1

Cardano uses a similar BIP-32/39/44 structure as bitcoin and ethereum, so you can use the same mnemonic seed phrase to derive your HD keys as you do on the other blockchains.

To do so manually, I'd recommend installing the [`cardano-wallet`](https://github.com/input-output-hk/cardano-wallet) software - it comes with all the tools necessary for deriving all key types (most notably. `cardano-address` and `bech32`. Refer to the [official cardano-wallet documentation](https://input-output-hk.github.io/cardano-wallet/) for instructions on how to derive the keys/manage addresses, or, when installed, just run `cardano-wallet --help` for brief descriptions of all the commands.

To be clear: `cardano-address` is the low level module that gives you fine control over public/private key derivation, and `cardano-cli` can then used to construct individual addresses (including staking addresses). Alternatively, you can use `cardano-wallet` to construct entire sets of addresses, and have their UTXOs automatically managed for you.


---

