@oneie/sdk 0.16.0 → 0.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -34,6 +34,22 @@ export interface VaultBlob {
34
34
  * A public value, never key material.
35
35
  */
36
36
  authPub?: string;
37
+ /**
38
+ * WHICH DERIVATION the key inside was minted under (C6).
39
+ * `'v2'` — BIP-39 seed -> SLIP-0010 / BIP-32 at the standard paths, the
40
+ * addresses any wallet finds. ABSENT — `'v1'`, ONE's own HKDF labels, which
41
+ * is what every vault sealed before C6 holds and must keep holding.
42
+ *
43
+ * ABSENT IS NOT `'v1'` WRITTEN DOWN, and the difference is load-bearing: the
44
+ * AAD below appends this field ONLY when it is present, so a pre-C6 envelope
45
+ * authenticates the exact eight values it always did. Writing `'v1'` into an
46
+ * old blob would change its AAD and it would never open again.
47
+ *
48
+ * Bound as AAD when present, for the same reason `wrap` is: an attacker who
49
+ * could flip v2 to v1 would point the holder's recovery at the wrong four
50
+ * addresses and the money would simply not be there.
51
+ */
52
+ derivation?: 'v1' | 'v2';
37
53
  }
38
54
  /** RFC 9106's recommended second option, and the security floor for this file. */
39
55
  export declare const KDF_DEFAULTS: {
@@ -46,6 +62,10 @@ export interface SealOpts {
46
62
  authPub?: string;
47
63
  /** Override the KDF cost. Lower values are for TESTS ONLY. */
48
64
  kdf?: Partial<typeof KDF_DEFAULTS>;
65
+ /** Which derivation the sealed key was minted under. OMIT for a v1 key — the
66
+ * field's absence IS v1, and writing it changes the AAD (see `aad`). The mint
67
+ * site passes `'v2'` explicitly for a new master; nothing defaults it. */
68
+ derivation?: VaultBlob['derivation'];
49
69
  }
50
70
  /** Seal `secret` (the 24-word mnemonic) under `passphrase`. */
51
71
  export declare function sealVault(secret: string, passphrase: string, opts?: SealOpts): Promise<VaultBlob>;
@@ -1 +1 @@
1
- {"version":3,"file":"vault-file.d.ts","sourceRoot":"","sources":["../src/vault-file.ts"],"names":[],"mappings":"AA+BA,+EAA+E;AAC/E,MAAM,WAAW,SAAS;IACxB,oCAAoC;IACpC,CAAC,EAAE,CAAC,CAAA;IACJ;;;;;;;;;OASG;IACH,IAAI,EAAE,YAAY,GAAG,UAAU,CAAA;IAC/B,GAAG,EAAE;QACH,IAAI,EAAE,UAAU,CAAA;QAChB,kBAAkB;QAClB,CAAC,EAAE,MAAM,CAAA;QACT,sEAAsE;QACtE,CAAC,EAAE,MAAM,CAAA;QACT,mBAAmB;QACnB,CAAC,EAAE,MAAM,CAAA;QACT,2BAA2B;QAC3B,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACD,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAA;IACV,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAA;IACV;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,kFAAkF;AAClF,eAAO,MAAM,YAAY;;;;CAAqC,CAAA;AA4C9D,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,8DAA8D;IAC9D,GAAG,CAAC,EAAE,OAAO,CAAC,OAAO,YAAY,CAAC,CAAA;CACnC;AAED,+DAA+D;AAC/D,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,QAAa,GAClB,OAAO,CAAC,SAAS,CAAC,CAqBpB;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBpF;AAED,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAE1D;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C"}
1
+ {"version":3,"file":"vault-file.d.ts","sourceRoot":"","sources":["../src/vault-file.ts"],"names":[],"mappings":"AA+BA,+EAA+E;AAC/E,MAAM,WAAW,SAAS;IACxB,oCAAoC;IACpC,CAAC,EAAE,CAAC,CAAA;IACJ;;;;;;;;;OASG;IACH,IAAI,EAAE,YAAY,GAAG,UAAU,CAAA;IAC/B,GAAG,EAAE;QACH,IAAI,EAAE,UAAU,CAAA;QAChB,kBAAkB;QAClB,CAAC,EAAE,MAAM,CAAA;QACT,sEAAsE;QACtE,CAAC,EAAE,MAAM,CAAA;QACT,mBAAmB;QACnB,CAAC,EAAE,MAAM,CAAA;QACT,2BAA2B;QAC3B,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACD,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAA;IACV,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAA;IACV;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CACzB;AAED,kFAAkF;AAClF,eAAO,MAAM,YAAY;;;;CAAqC,CAAA;AA2D9D,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,8DAA8D;IAC9D,GAAG,CAAC,EAAE,OAAO,CAAC,OAAO,YAAY,CAAC,CAAA;IAClC;;+EAE2E;IAC3E,UAAU,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,CAAA;CACrC;AAED,+DAA+D;AAC/D,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,QAAa,GAClB,OAAO,CAAC,SAAS,CAAC,CA+BpB;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0BpF;AAED,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAE1D;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C"}
@@ -55,7 +55,24 @@ function unb64u(s) {
55
55
  */
56
56
  function aad(blob) {
57
57
  const k = blob.kdf;
58
- return enc.encode(JSON.stringify([blob.v, blob.wrap, k.name, k.t, k.m, k.p, k.salt, blob.authPub ?? '']));
58
+ // EIGHT elements when `derivation` is absent byte-identical to the AAD every
59
+ // vault sealed before C6 was authenticated with. A ninth element appears ONLY
60
+ // when the field is present. Appending `derivation ?? ''` unconditionally
61
+ // would have rewritten the AAD of every existing backup on earth and bricked
62
+ // all of them; the accept test opens a blob sealed before this change to prove
63
+ // it did not happen.
64
+ const base = [blob.v, blob.wrap, k.name, k.t, k.m, k.p, k.salt, blob.authPub ?? ''];
65
+ if (blob.derivation !== undefined)
66
+ base.push(blob.derivation);
67
+ return enc.encode(JSON.stringify(base));
68
+ }
69
+ /** A header carrying a derivation we do not implement is refused before any key
70
+ * is derived: we cannot say which addresses that vault holds, and guessing is
71
+ * how a holder is pointed at an empty address and told their money is gone. */
72
+ function assertKnownDerivation(derivation) {
73
+ if (derivation !== undefined && derivation !== 'v1' && derivation !== 'v2') {
74
+ throw new Error(`vault: unknown derivation ${JSON.stringify(derivation)}`);
75
+ }
59
76
  }
60
77
  async function aesKey(passphrase, salt, kdf) {
61
78
  // argon2id's `m` is KIBIBYTES. Passing 64 here instead of 65536 silently
@@ -82,7 +99,17 @@ export async function sealVault(secret, passphrase, opts = {}) {
82
99
  p: opts.kdf?.p ?? KDF_DEFAULTS.p,
83
100
  salt: b64u(salt),
84
101
  };
85
- const header = { v: 1, wrap: opts.wrap ?? 'passphrase', kdf, authPub: opts.authPub };
102
+ assertKnownDerivation(opts.derivation);
103
+ const header = {
104
+ v: 1,
105
+ wrap: opts.wrap ?? 'passphrase',
106
+ kdf,
107
+ authPub: opts.authPub,
108
+ // Spread rather than `derivation: opts.derivation` — an explicit `undefined`
109
+ // key would serialise away but `'derivation' in blob` would read true, and a
110
+ // caller branching on that would treat a v1 vault as marked.
111
+ ...(opts.derivation !== undefined ? { derivation: opts.derivation } : {}),
112
+ };
86
113
  const key = await aesKey(passphrase, salt, kdf);
87
114
  const ct = await crypto.subtle.encrypt({ name: 'AES-GCM', iv: iv, additionalData: aad(header) }, key, enc.encode(secret));
88
115
  return { ...header, iv: b64u(iv), ct: b64u(new Uint8Array(ct)) };
@@ -96,6 +123,7 @@ export async function openVault(blob, passphrase) {
96
123
  throw new Error(`vault: unsupported version ${String(blob?.v)}`);
97
124
  if (blob.kdf?.name !== 'argon2id')
98
125
  throw new Error(`vault: unsupported kdf ${String(blob.kdf?.name)}`);
126
+ assertKnownDerivation(blob.derivation);
99
127
  if (!passphrase)
100
128
  throw new Error('vault: passphrase required');
101
129
  const key = await aesKey(passphrase, unb64u(blob.kdf.salt), blob.kdf);
@@ -1 +1 @@
1
- {"version":3,"file":"vault-file.js","sourceRoot":"","sources":["../src/vault-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vault-file.js","sourceRoot":"","sources":["../src/vault-file.ts"],"names":[],"mappings":"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"}
package/dist/wallet.d.ts CHANGED
@@ -34,10 +34,60 @@ export declare function evmAddressFromPubkey(uncompressedPubkey: Uint8Array): st
34
34
  * call, no derivation from any external secret — pure local CSPRNG keygen.
35
35
  */
36
36
  export declare function generateAgentKeypairs(): AgentKeypairs;
37
+ /**
38
+ * WHICH DERIVATION a wallet was minted under. `v1` is the HKDF-label scheme
39
+ * above — ONE's own, unreadable to any other wallet. `v2` is BIP-39 seed ->
40
+ * SLIP-0010 / BIP-32 at the standard paths, which every BIP-39 wallet speaks.
41
+ *
42
+ * ADDITIVE. An ABSENT marker is `v1`, forever — `undefined` must never mean v2
43
+ * in this package any more than it may in the browser, because the day it does,
44
+ * every wallet the CLI ever wrote silently re-keys.
45
+ *
46
+ * Mirrors `Derivation` in one.ie/web/src/lib/derive-multichain.ts. The two are
47
+ * separate declarations across a package boundary, the way `ripemd160` and
48
+ * `CHAIN_INFO` already are; tests/unit/wallet/keygen-parity.test.ts is the one
49
+ * place both are importable and is what proves they agree.
50
+ */
51
+ export type Derivation = 'v1' | 'v2';
52
+ /** The BIP-39 passphrase, NAMED rather than passed silently — the empty string.
53
+ * A passphrase omitted on recovery derives a stranger's empty addresses. */
54
+ export declare const BIP39_PASSPHRASE = "";
55
+ /**
56
+ * The v2 paths. `evm` is this package's name for the chain the browser calls
57
+ * `eth` — SLIP-44 coin type 60 either way; the two names must never drift onto
58
+ * two paths. Sui and Solana are SLIP-0010 ed25519 (all levels hardened),
59
+ * Ethereum and Bitcoin BIP-32 secp256k1.
60
+ */
61
+ export declare const STANDARD_PATHS: Record<WalletChain, string>;
62
+ /** Absent is v1. Anything that is not exactly 'v1' or 'v2' THROWS rather than
63
+ * falling back — a wallet whose marker we cannot read has addresses we cannot
64
+ * name, and guessing produces a third set nobody can find again. */
65
+ export declare function readDerivation(marker: unknown): Derivation;
66
+ /**
67
+ * The 32-byte v2 signing key for one chain. Sui and Solana are SLIP-0010
68
+ * ed25519; Ethereum and Bitcoin are BIP-32 secp256k1 via `@scure/bip32` — the
69
+ * same library, same version and same paths one.ie/web derives with, so the two
70
+ * sides produce the same four addresses from the same phrase
71
+ * (tests/unit/wallet/keygen-parity.test.ts is where that is proven).
72
+ *
73
+ * @scure/bip32 is declared in package.json; the lockfile is updated by the CEO
74
+ * after landing (bun install on the main tree).
75
+ */
76
+ export declare function deriveStandardChainSecret(mnemonic: string, chain: WalletChain): Promise<Uint8Array>;
77
+ /** One chain's v2 key — address, public key and secret. The per-chain door
78
+ * exists because the four-chain door cannot answer at all while eth/btc are
79
+ * blocked on the install above, and Sui/Solana parity with the browser is
80
+ * provable TODAY. */
81
+ export declare function deriveStandardChainKey(mnemonic: string, chain: WalletChain): Promise<WalletKey>;
37
82
  /** Derive the deterministic 4-chain wallet from a 32-byte seed + its mnemonic. */
38
- export declare function deriveWalletFromSeed(seed: Uint8Array, mnemonic: string): Promise<GeneratedWallet>;
39
- /** Fresh recoverable wallet: random 256-bit entropy -> 24-word mnemonic -> 4 chains. */
40
- export declare function generateWallet(): Promise<GeneratedWallet>;
41
- /** Recover the same 4-chain wallet from a 24-word BIP-39 mnemonic. */
42
- export declare function recoverWallet(mnemonic: string): Promise<GeneratedWallet>;
83
+ export declare function deriveWalletFromSeed(seed: Uint8Array, mnemonic: string, derivation?: Derivation): Promise<GeneratedWallet>;
84
+ /** Fresh recoverable wallet: random 256-bit entropy -> 24-word mnemonic -> 4 chains.
85
+ * `derivation` is NOT defaulted to the standard here: the caller that mints a new
86
+ * master names it, and persists what it named (the vault-file header + the wallets
87
+ * row). A generator that quietly upgraded would strand every key it ever made. */
88
+ export declare function generateWallet(derivation?: Derivation): Promise<GeneratedWallet>;
89
+ /** Recover the same 4-chain wallet from a 24-word BIP-39 mnemonic. `derivation`
90
+ * comes from the record the phrase was kept with — absent means v1, and a v1
91
+ * key recovers its v1 addresses forever. */
92
+ export declare function recoverWallet(mnemonic: string, derivation?: Derivation): Promise<GeneratedWallet>;
43
93
  //# sourceMappingURL=wallet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE;QAAE,SAAS,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/F,GAAG,EAAE;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IACvE,MAAM,EAAE;QAAE,SAAS,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1E;AAED,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAA;AAEvD,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,WAAW,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,SAAS,EAAE,CAAA;CAClB;AAuBD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,CAKpE;AAGD,wBAAgB,oBAAoB,CAAC,kBAAkB,EAAE,UAAU,GAAG,MAAM,CAW3E;AAeD;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,aAAa,CAkBrD;AA8CD,kFAAkF;AAClF,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAMvG;AAED,wFAAwF;AACxF,wBAAsB,cAAc,IAAI,OAAO,CAAC,eAAe,CAAC,CAG/D;AAED,sEAAsE;AACtE,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAM9E"}
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE;QAAE,SAAS,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/F,GAAG,EAAE;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IACvE,MAAM,EAAE;QAAE,SAAS,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAC1E;AAED,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAA;AAEvD,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,WAAW,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,SAAS,EAAE,CAAA;CAClB;AAuBD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,CAKpE;AAGD,wBAAgB,oBAAoB,CAAC,kBAAkB,EAAE,UAAU,GAAG,MAAM,CAW3E;AAeD;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,aAAa,CAkBrD;AAgDD;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,CAAA;AAEpC;6EAC6E;AAC7E,eAAO,MAAM,gBAAgB,KAAK,CAAA;AAElC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAKtD,CAAA;AAED;;qEAEqE;AACrE,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,CAI1D;AAgCD;;;;;;;;;GASG;AACH,wBAAsB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAQzG;AAED;;;sBAGsB;AACtB,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAErG;AAED,kFAAkF;AAClF,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,UAAU,GACtB,OAAO,CAAC,eAAe,CAAC,CAqB1B;AAED;;;mFAGmF;AACnF,wBAAsB,cAAc,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAGtF;AAED;;6CAE6C;AAC7C,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAMvG"}
package/dist/wallet.js CHANGED
@@ -17,9 +17,11 @@ import { ed25519 } from '@noble/curves/ed25519.js';
17
17
  import { secp256k1 } from '@noble/curves/secp256k1.js';
18
18
  import { blake2b } from '@noble/hashes/blake2.js';
19
19
  import { keccak_256 } from '@noble/hashes/sha3.js';
20
- import { sha256 } from '@noble/hashes/sha2.js';
20
+ import { sha256, sha512 } from '@noble/hashes/sha2.js';
21
+ import { hmac } from '@noble/hashes/hmac.js';
21
22
  import { base58, bech32 } from '@scure/base';
22
- import { entropyToMnemonic, mnemonicToEntropy, validateMnemonic } from '@scure/bip39';
23
+ import { HDKey } from '@scure/bip32';
24
+ import { entropyToMnemonic, mnemonicToEntropy, mnemonicToSeedSync, validateMnemonic } from '@scure/bip39';
23
25
  import { wordlist } from '@scure/bip39/wordlists/english.js';
24
26
  // ===== ENCODING (environment-agnostic — no Node Buffer) =====
25
27
  const enc = new TextEncoder();
@@ -124,30 +126,135 @@ function keyForChain(chain, secret) {
124
126
  const pub = secp256k1.getPublicKey(secret, true);
125
127
  return { chain, address: btcAddressFromPubkey(pub), privateKeyHex: toHex(secret), publicKeyHex: toHex(pub) };
126
128
  }
129
+ /** The BIP-39 passphrase, NAMED rather than passed silently — the empty string.
130
+ * A passphrase omitted on recovery derives a stranger's empty addresses. */
131
+ export const BIP39_PASSPHRASE = '';
132
+ /**
133
+ * The v2 paths. `evm` is this package's name for the chain the browser calls
134
+ * `eth` — SLIP-44 coin type 60 either way; the two names must never drift onto
135
+ * two paths. Sui and Solana are SLIP-0010 ed25519 (all levels hardened),
136
+ * Ethereum and Bitcoin BIP-32 secp256k1.
137
+ */
138
+ export const STANDARD_PATHS = {
139
+ sui: "m/44'/784'/0'/0'/0'",
140
+ evm: "m/44'/60'/0'/0/0",
141
+ sol: "m/44'/501'/0'/0'",
142
+ btc: "m/84'/0'/0'/0/0",
143
+ };
144
+ /** Absent is v1. Anything that is not exactly 'v1' or 'v2' THROWS rather than
145
+ * falling back — a wallet whose marker we cannot read has addresses we cannot
146
+ * name, and guessing produces a third set nobody can find again. */
147
+ export function readDerivation(marker) {
148
+ if (marker === undefined || marker === null)
149
+ return 'v1';
150
+ if (marker === 'v1' || marker === 'v2')
151
+ return marker;
152
+ throw new Error(`wallet: unknown derivation ${JSON.stringify(marker)}`);
153
+ }
154
+ const HARDENED = 0x80000000;
155
+ /**
156
+ * SLIP-0010 ed25519, hardened-only — the same math @mysten/sui uses and the
157
+ * same `sui keytool import` performs. ed25519 has no public derivation, so an
158
+ * unhardened level is refused rather than approximated.
159
+ *
160
+ * Proven, not asserted: one.ie/web derives Sui with @mysten/sui's own
161
+ * `Ed25519Keypair.deriveKeypair`, and keygen-parity.test.ts requires this
162
+ * helper's Sui address to equal it before the helper is trusted on Solana's
163
+ * path, where no second implementation exists to check it.
164
+ */
165
+ function slip10Ed25519(seed, path) {
166
+ let I = hmac(sha512, enc.encode('ed25519 seed'), seed);
167
+ let key = I.slice(0, 32);
168
+ let chainCode = I.slice(32);
169
+ for (const level of path.split('/').slice(1)) {
170
+ if (!level.endsWith("'"))
171
+ throw new Error(`wallet: ed25519 has no unhardened level — "${level}" in ${path}`);
172
+ const index = (Number.parseInt(level.slice(0, -1), 10) + HARDENED) >>> 0;
173
+ const data = new Uint8Array(37);
174
+ data[0] = 0;
175
+ data.set(key, 1);
176
+ new DataView(data.buffer).setUint32(33, index, false);
177
+ I = hmac(sha512, chainCode, data);
178
+ key = I.slice(0, 32);
179
+ chainCode = I.slice(32);
180
+ }
181
+ return key;
182
+ }
183
+ /**
184
+ * The 32-byte v2 signing key for one chain. Sui and Solana are SLIP-0010
185
+ * ed25519; Ethereum and Bitcoin are BIP-32 secp256k1 via `@scure/bip32` — the
186
+ * same library, same version and same paths one.ie/web derives with, so the two
187
+ * sides produce the same four addresses from the same phrase
188
+ * (tests/unit/wallet/keygen-parity.test.ts is where that is proven).
189
+ *
190
+ * @scure/bip32 is declared in package.json; the lockfile is updated by the CEO
191
+ * after landing (bun install on the main tree).
192
+ */
193
+ export async function deriveStandardChainSecret(mnemonic, chain) {
194
+ const trimmed = mnemonic.trim().toLowerCase().split(/\s+/).join(' ');
195
+ if (!validateMnemonic(trimmed, wordlist))
196
+ throw new Error('wallet: invalid BIP-39 recovery phrase');
197
+ const seed = mnemonicToSeedSync(trimmed, BIP39_PASSPHRASE);
198
+ if (chain === 'sui' || chain === 'sol')
199
+ return slip10Ed25519(seed, STANDARD_PATHS[chain]);
200
+ const node = HDKey.fromMasterSeed(seed).derive(STANDARD_PATHS[chain]);
201
+ if (!node.privateKey)
202
+ throw new Error(`wallet: ${chain} node carries no private key`);
203
+ return node.privateKey;
204
+ }
205
+ /** One chain's v2 key — address, public key and secret. The per-chain door
206
+ * exists because the four-chain door cannot answer at all while eth/btc are
207
+ * blocked on the install above, and Sui/Solana parity with the browser is
208
+ * provable TODAY. */
209
+ export async function deriveStandardChainKey(mnemonic, chain) {
210
+ return keyForChain(chain, await deriveStandardChainSecret(mnemonic, chain));
211
+ }
127
212
  /** Derive the deterministic 4-chain wallet from a 32-byte seed + its mnemonic. */
128
- export async function deriveWalletFromSeed(seed, mnemonic) {
213
+ export async function deriveWalletFromSeed(seed, mnemonic, derivation) {
129
214
  if (seed.length !== 32)
130
215
  throw new Error(`wallet: seed must be 32 bytes, got ${seed.length}`);
131
216
  const chains = ['sui', 'evm', 'sol', 'btc'];
132
217
  const keys = [];
218
+ // An ABSENT marker is v1. readDerivation throws on anything but 'v1' / 'v2'.
219
+ if (readDerivation(derivation) === 'v2') {
220
+ // Under v1 `mnemonic` is a label the caller carries alongside the seed and
221
+ // nothing reads it. Under v2 it IS the input, so a seed that does not encode
222
+ // this phrase would silently derive a different wallet than the one the
223
+ // paper recovers. Refuse the mismatch instead of producing it.
224
+ const trimmed = mnemonic.trim().toLowerCase().split(/\s+/).join(' ');
225
+ if (!validateMnemonic(trimmed, wordlist))
226
+ throw new Error('wallet: invalid BIP-39 recovery phrase');
227
+ const entropy = mnemonicToEntropy(trimmed, wordlist);
228
+ if (entropy.length !== seed.length || entropy.some((b, i) => b !== seed[i])) {
229
+ throw new Error('wallet: derivation v2 — the seed does not encode this recovery phrase');
230
+ }
231
+ for (const chain of chains)
232
+ keys.push(keyForChain(chain, await deriveStandardChainSecret(trimmed, chain)));
233
+ return { mnemonic: trimmed, keys };
234
+ }
133
235
  for (const chain of chains)
134
236
  keys.push(keyForChain(chain, await hkdfChainSecret(seed, chain)));
135
237
  return { mnemonic, keys };
136
238
  }
137
- /** Fresh recoverable wallet: random 256-bit entropy -> 24-word mnemonic -> 4 chains. */
138
- export async function generateWallet() {
239
+ /** Fresh recoverable wallet: random 256-bit entropy -> 24-word mnemonic -> 4 chains.
240
+ * `derivation` is NOT defaulted to the standard here: the caller that mints a new
241
+ * master names it, and persists what it named (the vault-file header + the wallets
242
+ * row). A generator that quietly upgraded would strand every key it ever made. */
243
+ export async function generateWallet(derivation) {
139
244
  const entropy = crypto.getRandomValues(new Uint8Array(32));
140
- return deriveWalletFromSeed(entropy, entropyToMnemonic(entropy, wordlist));
245
+ return deriveWalletFromSeed(entropy, entropyToMnemonic(entropy, wordlist), derivation);
141
246
  }
142
- /** Recover the same 4-chain wallet from a 24-word BIP-39 mnemonic. */
143
- export async function recoverWallet(mnemonic) {
247
+ /** Recover the same 4-chain wallet from a 24-word BIP-39 mnemonic. `derivation`
248
+ * comes from the record the phrase was kept with — absent means v1, and a v1
249
+ * key recovers its v1 addresses forever. */
250
+ export async function recoverWallet(mnemonic, derivation) {
144
251
  const trimmed = mnemonic.trim().toLowerCase().split(/\s+/).join(' ');
145
252
  if (!validateMnemonic(trimmed, wordlist))
146
253
  throw new Error('wallet: invalid BIP-39 recovery phrase');
147
254
  const entropy = mnemonicToEntropy(trimmed, wordlist);
148
255
  if (entropy.length !== 32)
149
256
  throw new Error(`wallet: expected 32-byte entropy, got ${entropy.length}`);
150
- return deriveWalletFromSeed(entropy, trimmed);
257
+ return deriveWalletFromSeed(entropy, trimmed, derivation);
151
258
  }
152
259
  // ===== RIPEMD-160 (pure JS, ported verbatim from derive-multichain.ts) =====
153
260
  function ripemd160(data) {
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QACjH,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACjH,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;KACjD,CAAA;IACD,MAAM,EAAE,GAAG;QACT,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACjH,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAClH,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;KACtC,CAAA;IACD,MAAM,EAAE,GAAG;QACT,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QACjH,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAClH,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;KACtC,CAAA;IAED,SAAS,CAAC,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QACnD,IAAI,CAAC,GAAG,EAAE;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC5B,IAAI,CAAC,GAAG,EAAE;YAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACrC,IAAI,CAAC,GAAG,EAAE;YAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,CAAC,GAAG,EAAE;YAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACrC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACrB,CAAC;IAED,SAAS,KAAK,CAAC,CAAS,EAAE,CAAS;QACjC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAC1B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAA;IACzB,MAAM,MAAM,GAAG,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;IAC1E,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAA;IAClD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAChB,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;IACrB,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACtC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,KAAK,CAAC,EAAE,IAAI,CAAC,CAAA;IACnD,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAA;IAEzE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;IAEvF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAa,EAAE,CAAA;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;QAElE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAC/C,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAE/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;YAChC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;YACvF,EAAE,GAAG,EAAE,CAAA;YACP,EAAE,GAAG,EAAE,CAAA;YACP,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;YAClB,EAAE,GAAG,EAAE,CAAA;YACP,EAAE,GAAG,CAAC,CAAA;YACN,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;YACxF,EAAE,GAAG,EAAE,CAAA;YACP,EAAE,GAAG,EAAE,CAAA;YACP,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;YAClB,EAAE,GAAG,EAAE,CAAA;YACP,EAAE,GAAG,CAAC,CAAA;QACR,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;QAC9B,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;QACzB,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;QACzB,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;QACzB,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;QACzB,EAAE,GAAG,CAAC,CAAA;IACR,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;IAC9B,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACtC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;IAC5B,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;IAC5B,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;IAC5B,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;IAC7B,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;IAC7B,OAAO,GAAG,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oneie/sdk",
3
- "version": "0.16.0",
3
+ "version": "0.16.1",
4
4
  "description": "ONE substrate SDK — signals, units, persist, launch handoff.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -149,6 +149,7 @@
149
149
  "@noble/curves": "^2.2.0",
150
150
  "@noble/hashes": "^2.2.0",
151
151
  "@scure/base": "^2.2.0",
152
+ "@scure/bip32": "^2.2.0",
152
153
  "@scure/bip39": "^2.2.0",
153
154
  "better-auth": "^1.6.11",
154
155
  "zod": "^4.3.6"