deriveDataPrivateKey

Derives the data private key for a specific account index. Uses the data derivation path m/888'/0'/{index + HARDENED_OFFSET}.

This key was used in Stacks 1.0 for BNS name registration and is still used for Gaia storage and profile signing.


Usage

import { deriveDataPrivateKey } from '@stacks/wallet-sdk';
import { HDKey } from '@scure/bip32';
import { mnemonicToSeed } from '@scure/bip39';

const seed = await mnemonicToSeed('your 24-word seed phrase ...');
const rootNode = HDKey.fromMasterSeed(seed);

const dataPrivateKey = deriveDataPrivateKey({ rootNode, index: 0 });
// compressed hex private key string

Notes

  • The returned private key is compressed (33 bytes, hex-encoded).

  • Uses a hardened child derivation (index + 0x80000000).

  • This key is separate from the STX private key and is used for data-layer operations (Gaia, profiles).

Reference Linkarrow-up-right


Signature


Returns

string

A compressed hex-encoded private key string.


Parameters

opts (required)

Property
Type
Description

rootNode

HDKey

The root HD key derived from the wallet's seed phrase.

index

number

The account index to derive the key for (0-based).

Last updated

Was this helpful?