scalus.cardano.wallet.hd

Members list

Type members

Classlikes

object Bip32Ed25519

BIP32-Ed25519 key derivation for Cardano (Icarus-style).

BIP32-Ed25519 key derivation for Cardano (Icarus-style).

Implements the BIP32-Ed25519 specification as used by Cardano wallets, supporting both hardened and non-hardened child key derivation.

Key differences from SLIP-0010:

  • Extended keys are 96 bytes (64-byte secret + 32-byte chain code)
  • Non-hardened derivation is supported using the public key
  • Key clamping is applied to make Ed25519 keys valid BIP32 keys

Attributes

See also
Supertypes
class Object
trait Matchable
class Any
Self type
object Bip39

BIP-39 mnemonic sentence handling for Cardano wallets.

BIP-39 mnemonic sentence handling for Cardano wallets.

Implements mnemonic validation and seed derivation per BIP-39. Uses English wordlist (2048 words).

Attributes

See also
Supertypes
class Object
trait Matchable
class Any
Self type
Bip39.type
object Bip39Wordlist

BIP-39 English wordlist (2048 words).

BIP-39 English wordlist (2048 words).

Source: https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt

Attributes

See also
Supertypes
class Object
trait Matchable
class Any
Self type
object Cip1852

CIP-1852 derivation paths for Cardano HD wallets.

CIP-1852 derivation paths for Cardano HD wallets.

CIP-1852 defines the hierarchical deterministic wallet structure for Cardano Shelley-era wallets. It follows the BIP-44 structure with Cardano-specific constants.

Path structure: m / purpose' / coin_type' / account' / role / index

  • purpose: 1852' (Cardano Shelley-era)
  • coin_type: 1815' (Cardano)
  • account: 0', 1', 2', ... (hardened)
  • role: 0 (external), 1 (internal/change), 2 (staking), 3 (DRep), 4 (CC cold), 5 (CC hot)
  • index: 0, 1, 2, ... (non-hardened)

Attributes

See also
Supertypes
class Object
trait Matchable
class Any
Self type
Cip1852.type
class HdAccount(val accountIndex: Int, accountKey: HdKeyPair, val paymentIndex: Int = ..., val changeIndex: Int = ..., val stakingIndex: Int = ..., val drepIndex: Int = ...) extends Account

HD wallet account implementing CIP-1852 derivation with BIP32-Ed25519.

HD wallet account implementing CIP-1852 derivation with BIP32-Ed25519.

Provides payment, change, staking, and DRep keys derived from a BIP-39 mnemonic using BIP32-Ed25519 key derivation (Icarus-style) and CIP-1852/CIP-105 path structure.

This implementation is compatible with standard Cardano wallets (Daedalus, Yoroi, etc.) because it uses BIP32-Ed25519 which supports both hardened and non-hardened derivation.

Path structure (CIP-1852 / CIP-105):

  • Payment keys: m/1852'/1815'/account'/0/index (role and index are non-hardened)
  • Change keys: m/1852'/1815'/account'/1/index
  • Staking keys: m/1852'/1815'/account'/2/index
  • DRep keys: m/1852'/1815'/account'/3/index (CIP-105)

Value parameters

accountIndex

the account index (0, 1, 2, ...)

accountKey

the account-level extended key at path m/1852'/1815'/account'

changeIndex

the change address index (default 0)

drepIndex

the DRep key index (default 0, CIP-105 recommends only index 0)

paymentIndex

the payment address index (default 0)

stakingIndex

the staking key index (default 0)

Attributes

Companion
object
Supertypes
trait Account
class Object
trait Matchable
class Any
object HdAccount

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
HdAccount.type
class HdKeyPair(val extendedKey: ExtendedKey, val verificationKey: VerificationKey)(using val signer: Ed25519Signer) extends ExtendedKeyPair

HD wallet key pair backed by BIP32-Ed25519 extended key.

HD wallet key pair backed by BIP32-Ed25519 extended key.

This key pair uses the Cardano-style extended format (96 bytes: 64-byte extended secret key + 32-byte chain code) from BIP32-Ed25519 derivation. Supports both hardened and non-hardened child key derivation for CIP-1852 compatibility.

Value parameters

extendedKey

the BIP32-Ed25519 extended key containing private key components and chain code

verificationKey

the Ed25519 public key derived from the private key

Attributes

Companion
object
Supertypes
trait KeyPair
class Object
trait Matchable
class Any
object HdKeyPair

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
HdKeyPair.type