> ## Documentation Index
> Fetch the complete documentation index at: https://docs.turnkey.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Wallets

> A [hierarchical deterministic (HD) wallet](https://learnmeabitcoin.com/technical/hd-wallets) is a collection of cryptographic private/public key pairs that share a common seed. A wallet is used to generate accounts.

```json theme={"system"}
{
  "walletId": "eb98ae4c-07eb-4117-9b2d-8a453c0e1e64",
  "walletName": "default"
}
```

#### Configuration

Wallet seeds are generated with a default mnemonic length of 12 words. The [BIP-39 specification](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) supports mnemonic lengths of 12, 15, 18, 21, and 24 words. To enhance your Wallet's security, you may consider opting for a longer mnemonic length. This optional `mnemonicLength` field can be set when creating a Wallet. It's important to note that once the Wallet seed is generated, the mnemonic is permanent and cannot be altered.

## Accounts

An account contains the directions for deriving a cryptographic key pair and corresponding address from a Wallet. In practice, this looks like:

* The Wallet seed and Account curve are used to create a root key pair
* The Account path format and path are used to derive an extended key pair from the root key pair
* The Account address format is used to derive the address from the extended public key

```json theme={"system"}
{
  "address": "0x7aAE6F67798D1Ea0b8bFB5b64231B2f12049DB5e",
  "addressFormat": "ADDRESS_FORMAT_ETHEREUM",
  "curve": "CURVE_SECP256K1",
  "path": "m/44'/60'/0'/0/0",
  "pathFormat": "PATH_FORMAT_BIP32",
  "walletId": "eb98ae4c-07eb-4117-9b2d-8a453c0e1e64"
}
```

**The account address is used to sign with the underlying extended private key.**

#### HD wallet default paths

HD wallets use standardized derivation paths to generate multiple accounts from a single seed. These paths follow a specific structure that allows for consistent address generation across different wallet implementations. Here are common default paths for some of the ecosystems supported by Turnkey:

* Ethereum: `m/44'/60'/0'/0/0`
* Cosmos: `m/44'/118'/0'/0/0`
* Solana: `m/44'/501'/0'/0'`

For a complete list of coin types and possible HD paths, refer to the [SLIP-0044 specification](https://github.com/satoshilabs/slips/blob/master/slip-0044.md).

#### Address formats and curves

See below for specific address formats that you can currently derive on Turnkey:

| Type     | Address Format                            | Curve            | Default HD Path    |
| -------- | ----------------------------------------- | ---------------- | ------------------ |
| n/a      | ADDRESS\_FORMAT\_COMPRESSED               | CURVE\_SECP256K1 | m/0'/0             |
| n/a      | ADDRESS\_FORMAT\_COMPRESSED               | CURVE\_ED25519   | m/0'/0             |
| n/a      | ADDRESS\_FORMAT\_UNCOMPRESSED             | CURVE\_SECP256K1 | m/0'/0             |
| Ethereum | ADDRESS\_FORMAT\_ETHEREUM                 | CURVE\_SECP256K1 | m/44'/60'/0'/0/0   |
| Cosmos   | ADDRESS\_FORMAT\_COSMOS                   | CURVE\_SECP256K1 | m/44'/118'/0'/0/0  |
| Solana   | ADDRESS\_FORMAT\_SOLANA                   | CURVE\_ED25519   | m/44'/501'/0'/0    |
| Tron     | ADDRESS\_FORMAT\_TRON                     | CURVE\_SECP256K1 | m/44'/195'/0'/0/0  |
| Sui      | ADDRESS\_FORMAT\_SUI                      | CURVE\_ED25519   | m/44'/784'/0'/0/0  |
| Aptos    | ADDRESS\_FORMAT\_APTOS                    | CURVE\_ED25519   | m/44'/637'/0'/0'/0 |
| Bitcoin  | ADDRESS\_FORMAT\_BITCOIN\_MAINNET\_P2PKH  | CURVE\_SECP256K1 | m/44'/0'/0'/0/0    |
| Bitcoin  | ADDRESS\_FORMAT\_BITCOIN\_MAINNET\_P2SH   | CURVE\_SECP256K1 | m/49'/0'/0'/0/0    |
| Bitcoin  | ADDRESS\_FORMAT\_BITCOIN\_MAINNET\_P2WPKH | CURVE\_SECP256K1 | m/84'/0'/0'/0/0    |
| Bitcoin  | ADDRESS\_FORMAT\_BITCOIN\_MAINNET\_P2WSH  | CURVE\_SECP256K1 | m/48'/0'/0'/2'/0/0 |
| Bitcoin  | ADDRESS\_FORMAT\_BITCOIN\_MAINNET\_P2TR   | CURVE\_SECP256K1 | m/86'/0'/0'/0/0    |
| Bitcoin  | ADDRESS\_FORMAT\_BITCOIN\_TESTNET\_P2PKH  | CURVE\_SECP256K1 | m/44'/1'/0'/0/0    |
| Bitcoin  | ADDRESS\_FORMAT\_BITCOIN\_TESTNET\_P2SH   | CURVE\_SECP256K1 | m/49'/1'/0'/0/0    |
| Bitcoin  | ADDRESS\_FORMAT\_BITCOIN\_TESTNET\_P2WPKH | CURVE\_SECP256K1 | m/84'/1'/0'/0/0    |
| Bitcoin  | ADDRESS\_FORMAT\_BITCOIN\_TESTNET\_P2WSH  | CURVE\_SECP256K1 | m/48'/1'/0'/2'/0/0 |
| Bitcoin  | ADDRESS\_FORMAT\_BITCOIN\_TESTNET\_P2TR   | CURVE\_SECP256K1 | m/86'/1'/0'/0/0    |
| Bitcoin  | ADDRESS\_FORMAT\_BITCOIN\_SIGNET\_P2PKH   | CURVE\_SECP256K1 | m/44'/1'/0'/0/0    |
| Bitcoin  | ADDRESS\_FORMAT\_BITCOIN\_SIGNET\_P2SH    | CURVE\_SECP256K1 | m/49'/1'/0'/0/0    |
| Bitcoin  | ADDRESS\_FORMAT\_BITCOIN\_SIGNET\_P2WPKH  | CURVE\_SECP256K1 | m/84'/1'/0'/0/0    |
| Bitcoin  | ADDRESS\_FORMAT\_BITCOIN\_SIGNET\_P2WSH   | CURVE\_SECP256K1 | m/48'/1'/0'/2'/0/0 |
| Bitcoin  | ADDRESS\_FORMAT\_BITCOIN\_SIGNET\_P2TR    | CURVE\_SECP256K1 | m/86'/1'/0'/0/0    |
| Bitcoin  | ADDRESS\_FORMAT\_BITCOIN\_REGTEST\_P2PKH  | CURVE\_SECP256K1 | m/44'/1'/0'/0/0    |
| Bitcoin  | ADDRESS\_FORMAT\_BITCOIN\_REGTEST\_P2SH   | CURVE\_SECP256K1 | m/49'/1'/0'/0/0    |
| Bitcoin  | ADDRESS\_FORMAT\_BITCOIN\_REGTEST\_P2WPKH | CURVE\_SECP256K1 | m/84'/1'/0'/0/0    |
| Bitcoin  | ADDRESS\_FORMAT\_BITCOIN\_REGTEST\_P2WSH  | CURVE\_SECP256K1 | m/48'/1'/0'/2'/0/0 |
| Bitcoin  | ADDRESS\_FORMAT\_BITCOIN\_REGTEST\_P2TR   | CURVE\_SECP256K1 | m/86'/1'/0'/0/0    |
| Sei      | ADDRESS\_FORMAT\_SEI                      | CURVE\_ED25519   | m/44'/118'/0'/0/0  |
| Stellar  | ADDRESS\_FORMAT\_XLM                      | CURVE\_ED25519   | m/44'/148'/0'/0'/0 |
| Dogecoin | ADDRESS\_FORMAT\_DOGE\_MAINNET            | CURVE\_SECP256K1 | m/44'/3'/0'/0/0    |
| Dogecoin | ADDRESS\_FORMAT\_DOGE\_TESTNET            | CURVE\_SECP256K1 | m/44'/1'/0'/0/0    |
| TON      | ADDRESS\_FORMAT\_TON\_V3R2                | CURVE\_ED25519   | m/44'/607'/0'/0/0  |
| TON      | ADDRESS\_FORMAT\_TON\_V4R2                | CURVE\_ED25519   | m/44'/607'/0'/0/0  |
| XRP      | ADDRESS\_FORMAT\_XRP                      | CURVE\_SECP256K1 | m/44'/144'/0'/0/0  |
| FLARE    | ADDRESS\_FORMAT\_ETHEREUM                 | CURVE\_SECP256K1 | m/44'/60'/0'/0/0   |
| Spark    | ADDRESS\_FORMAT\_SPARK\_MAINNET           | CURVE\_SECP256K1 | m/8797555'/0'/0'   |
| Spark    | ADDRESS\_FORMAT\_SPARK\_REGTEST           | CURVE\_SECP256K1 | m/8797555'/0'/0'   |

#### Where can I learn more?

In addition to the guide mentioned above on [HD Wallets](https://learnmeabitcoin.com/technical/hd-wallets), there is also a page specifically on [Derivation Paths](https://learnmeabitcoin.com/technical/derivation-paths).

#### What if I don't see the address format for my network?

You can use `ADDRESS_FORMAT_COMPRESSED` to generate a public key which can be used to sign with (only sign raw payloads supported).

#### What is the difference between sign transaction and sign raw payload ?

[SignRawPayload](https://docs.turnkey.com/api-reference/activities/sign-raw-payload): network-agnostic, curve-based signing of messages.
[SignTransaction](https://docs.turnkey.com/api-reference/activities/sign-transaction): network-specific transaction signing, including [transaction parsing](https://docs.turnkey.com/networks/overview#:~:text=Tier%204%3A%20Transaction%20parsing%20and%20policy%20creation) and compatibility with our policy engine.

#### What if I don't see the curve for my network?

Contact us at [hello@turnkey.com](mailto:hello@turnkey.com).

## Delete wallets

To delete wallets you can call the [delete wallets activity](/api-reference/wallets/delete-wallets). Before deleting a wallet it must have been exported to prevent loss of funds, or you can pass in the `deleteWithoutExport` parameter with the value `true` to override this. The `deleteWithoutExport` parameter, if not passed in, is default `false`. Note that this activity must be initiated by the wallet owner.

## Private keys

Turnkey also supports raw private keys, but we recommend using Wallets since they offer several advantages:

* Wallets can be used across various cryptographic curves
* Wallets can generate millions of addresses for various digital assets
* Wallets can be represented by a checksummed, mnemonic phrase making them easier to backup and recover

## Export keys

Exporting on Turnkey enables you or your end users to export a copy of a Wallet or Private Key from our system at any time. While most Turnkey users opt to keep Wallets within Turnkey's secure infrastructure, the export functionality means you are never locked into Turnkey, and gives you the freedom to design your own backup processes as you see fit. Check out our [Export Wallet guide](/wallets/export-wallets) to allow your users to securely export their wallets.

## Import keys

Importing on Turnkey enables you or your end users to import a Wallet or Private Key to our system. Check out our [Import Wallet guide](/wallets/import-wallets) to allow your users to securely import their wallets.

## Delete keys

To delete private keys you can call the [delete private keys activity](/api-reference/private-keys/delete-private-keys). Before deleting a private key it must have been exported to prevent loss of funds, or you can pass in the `deleteWithoutExport` parameter with the value `true` to override this. The `deleteWithoutExport` parameter, if not passed in, is default `false`. Note that this activity must be initiated by the private key owner.
