lnurlcash-conformance 0.11.1 → 0.12.0

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.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,27 @@ Semantic versioning. While the LUD-25 draft is unmerged, `0.x` minor bumps
4
4
  may add or tighten checks that a previously-passing mint now fails; pin an
5
5
  exact version if you gate CI on the grade.
6
6
 
7
+ ## 0.12.0 - 2026-09-16
8
+
9
+ **`ck1` now carries a BIP-340 Schnorr ownership proof.** This follows the
10
+ current LUD-25 draft and is intentionally incompatible with the former
11
+ recoverable-ECDSA bearer encoding.
12
+
13
+ - `ck1` is bech32m over the note's 32-byte x-only public key followed by a
14
+ 64-byte Schnorr signature over the raw UTF-8 bytes of `LNURLcash`.
15
+ - Part 2 and Nostr-seed vectors have been regenerated. Their self-checks
16
+ verify the embedded key and Schnorr proof independently; `cs1` remains an
17
+ amount-bearing recoverable-ECDSA mint certificate.
18
+ - The live grader now spends its Part 2 probe with the new 96-byte `ck1`.
19
+ - Address proof vectors use Schnorr signatures over their raw UTF-8 messages,
20
+ matching the draft while address-management design remains under review.
21
+ - Part 2's address branch is now the literal `m/139'/d1/d2/d3/d4` path the
22
+ draft specifies, with no separate `m/139'/1'` purpose. The earlier hop only
23
+ existed to dodge a collision with a reference-wallet extension that
24
+ deterministically derived Part 1 secrets off the same root; that extension
25
+ is gone, so there is nothing left to collide with. Adds `spec-vectors.json`,
26
+ transcribing LUD-25's own published "Test Vectors" section.
27
+
7
28
  ## 0.11.1 - 2026-09-15
8
29
 
9
30
  - Unsigned plain-hash Part 1 mutation outputs now pass the live grader cleanly
package/README.md CHANGED
@@ -48,7 +48,7 @@ for (const c of cases) {
48
48
  | `signature.json` | offline verification, both recovery-id orderings, malformed input |
49
49
  | `derivation.json` | deterministic note secrets from a BIP39 seed |
50
50
  | `cash-derivation.json` | LUD-25's seed-recoverable note secrets under `m/139'`, with BIP-32's own vector 1 |
51
- | `part2.json` | Part 2: `cp1`/`ck1`/amount-bearing `cs1`/`cx1`, the per-note key tweak, note ownership and mint certificates, on the reference wallet's `m/139'/1'` address path |
51
+ | `part2.json` | Part 2: `cp1`, 96-byte-payload Schnorr `ck1`, amount-bearing recoverable-ECDSA `cs1`, `cx1`, the per-note key tweak, ownership proofs and mint certificates, on the reference wallet's `m/139'/1'` address path |
52
52
  | `bech32.json` | LUD-01 encoding, round trips, corrupted checksums |
53
53
  | `url-admission.json` | which URLs may be fetched, and why `data:` must never be |
54
54
  | `input-resolution.json` | bech32, LUD-17, Lightning Addresses, bare domains |
package/llms.txt CHANGED
@@ -13,7 +13,8 @@ vectors/index.json:
13
13
  signature.json offline verification, both recovery-id orderings
14
14
  derivation.json deterministic note secrets from a BIP39 seed
15
15
  cash-derivation.json LUD-25 m/139' note secrets, plus BIP-32 vector 1
16
- part2.json Part 2: cp1/ck1/cs1/cx1, the note-key tweak, ownership sigs, certificates;
16
+ part2.json Part 2: cp1, ck1=pubkey||BIP340 Schnorr sig, cs1=recoverable ECDSA certificate,
17
+ cx1, the note-key tweak, ownership proofs and certificates;
17
18
  address path is the reference wallet's m/139'/1'/d1..d4 (not the text's)
18
19
  bech32.json LUD-01 encoding
19
20
  url-admission.json which URLs may be fetched (https, or http to loopback/.onion)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lnurlcash-conformance",
3
- "version": "0.11.1",
3
+ "version": "0.12.0",
4
4
  "description": "Language-neutral conformance vectors, an adversarial mock mint, and a grader for LNURLcash (LUD-25) implementations",
5
5
  "author": "TheCryptoDonkey",
6
6
  "license": "MIT",
package/runner/index.mjs CHANGED
@@ -53,9 +53,10 @@ const verifySignature = (k1, amountMsat, signatureHex, pubkeyHex) => {
53
53
  const verifyCertificate = (pubkeyHex32, amountMsat, sig, mintPubkeyHex) =>
54
54
  recoversTo(signedMessageDigest(`LNURLcash:${amountMsat}:${pubkeyHex32}`), sig, mintPubkeyHex)
55
55
 
56
- // Part 2's bech32m strings: cp1 (32-byte key), ck1 and cs1 (65-byte
57
- // signature). cs1 has a variable HRP: "cs" plus the amount under BOLT-11's
58
- // amount rules. Longer than BIP-173's 90 characters by design.
56
+ // Part 2's bech32m strings: cp1 (32-byte key), ck1 (32-byte key plus 64-byte
57
+ // Schnorr signature), and cs1 (65-byte recoverable ECDSA signature). cs1 has
58
+ // a variable HRP: "cs" plus the amount under BOLT-11's amount rules. Longer
59
+ // than BIP-173's 90 characters by design.
59
60
  const BECH32M_LIMIT = 200
60
61
  const encodeCash = (hrp, bytes) => bech32m.encode(hrp, bech32m.toWords(bytes), BECH32M_LIMIT)
61
62
  const decodeCash = (hrp, value, length) => {
@@ -89,11 +90,12 @@ const decodeCertificate = value => {
89
90
  return signature ? {amountMsat, signature} : null
90
91
  }
91
92
 
92
- // The bearer secret of a cp1 note: the key's signature over the fixed
93
- // message "LNURLcash", r || s || recovery-id, the same value every time.
93
+ // The bearer secret of a cp1 note: its x-only key followed by a BIP-340
94
+ // Schnorr signature over the raw UTF-8 bytes of "LNURLcash".
94
95
  const ownershipProof = secretKey => {
95
- const lead = secp256k1.sign(signedMessageDigest('LNURLcash'), secretKey, {format: 'recovered', prehash: false})
96
- return encodeCash('ck', new Uint8Array([...lead.subarray(1), lead[0]]))
96
+ const pubkey = schnorr.getPublicKey(secretKey)
97
+ const signature = schnorr.sign(utf8ToBytes('LNURLcash'), secretKey)
98
+ return encodeCash('ck', new Uint8Array([...pubkey, ...signature]))
97
99
  }
98
100
 
99
101
  // LUD-17: lnurlw://host/path is https://host/path, or http:// when the host
@@ -24,6 +24,7 @@
24
24
  "retried-mutation.json",
25
25
  "mint-to-hash.json",
26
26
  "part2.json",
27
- "nostr-seed.json"
27
+ "nostr-seed.json",
28
+ "spec-vectors.json"
28
29
  ]
29
30
  }
@@ -2,7 +2,7 @@
2
2
  "version": 1,
3
3
  "spec": "LUD-25 draft (lnurl/luds#301)",
4
4
  "extension": true,
5
- "description": "An extension, not LUD-25: a Part 2 address branch rooted in a Nostr identity key, for a holder with no BIP39 words. seed = HMAC-SHA256(key = identity (the 32-byte secret key), msg = utf8(\"LNURLcash/nostr-seed\")); the branch is then the reference wallet's m/139'/1'/d1..d4 from that seed exactly as in part2.json, and every note field means what it means there. identityPubkey is the identity's x-only public key, the npub a lightning address belongs to. heartwood-esp32 derives this on the device and lnurlcash-kit exports it (deriveNostrAddressNode); a mint sees an ordinary cx1.",
5
+ "description": "An extension, not LUD-25: a Part 2 address branch rooted in a Nostr identity key, for a holder with no BIP39 words. seed = HMAC-SHA256(key = identity (the 32-byte secret key), msg = utf8(\"LNURLcash/nostr-seed\")); the branch is then the reference wallet's m/139'/d1..d4 from that seed exactly as in part2.json, and every note field means what it means there. identityPubkey is the identity's x-only public key, the npub a lightning address belongs to. heartwood-esp32 derives this on the device and lnurlcash-kit exports it (deriveNostrAddressNode); a mint sees an ordinary cx1.",
6
6
  "label": "LNURLcash/nostr-seed",
7
7
  "cases": [
8
8
  {
@@ -10,29 +10,29 @@
10
10
  "identityPubkey": "79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
11
11
  "host": "moneyer.dev",
12
12
  "seed": "3ae0ea260b8066e219db88cf06b3ea9a170104875f3ea70a8434a2bc478ea121",
13
- "addressNode": "6ec86f66d87919b32347fdc6b93855bdf3649e2641fc57ee977b72ce9d34625f63246e942e8f68ec0b82c7bcc1b39e5643a2a304356bcb3821163805f9d2d700",
14
- "cx1": "cx1haqpwf60sc5gkzar0282ma4t56fm9fzlm43nr23ztyvxkl0w8j4xxfrwjshg768vpwpv00xpkw09vsaz5vzr267t8qs3vwq9l8fdwqq605q4l",
13
+ "addressNode": "348c4d86dbf210b834616ba9788ed14703994851d33afe69c3db2e894837d7604a09e82ce5fb759d28682b1b0f02dfa3e817d08936bd0904fd6d8aa454e4a0c4",
14
+ "cx1": "cx1zykmf4qhmtgy8f99megdvcxfydz7gsafv3zawfr25gngaz25nrqy5z0g9njlkava9p5zkxc0qt0686qh6zynd0gfqn7kmz4y2nj2p3qfra8js",
15
15
  "notes": [
16
16
  {
17
17
  "index": 0,
18
- "noteSecretKey": "6257b20051d8bf990abef9274b05eec72deed8f6a6adae958e91ceb51e06136a",
19
- "notePubkey": "5d4fc85381b2b548c802d96a3bb98c2b278fef566e4888545abf1ebb7f3bfc79",
20
- "cp1": "cp1t48us5upk2653jqzm94rhwvv9vnclm6kdeygs4z6hu0tkleml3uscuyhw6",
21
- "ck1": "ck1v5ua6x3ldunqyhj5mh89dyxt3g27uy2n8awq3cktj83jtn7hux0q9dgh4g6mly78vgmh4cgf34dq7l8ww7vadx644scv9h8tekq672qqr60q6e"
18
+ "noteSecretKey": "c5f3dcde2580c0aedb53e10cdd0feafc922ae5ee5eb062a0eb8383d1a86a0f2c",
19
+ "notePubkey": "81924875f77724b1e44fb737143d53b5633c63f989c49ed936f504ec8a7765d4",
20
+ "cp1": "cp1sxfysa0hwujtrez0kum3g02nk43nccle38zfakfk75zweznhvh2qq5776a",
21
+ "ck1": "ck1sxfysa0hwujtrez0kum3g02nk43nccle38zfakfk75zweznhvh2vc2fjcpd26dgewjlmms72vwuryhv8pcjd3fxy5cf0j7el7a3yv7z8wzaslapkk63t8el8mre9j3ujf8auyn75we4s3fkcfgwuvwdwvg6mtk7w"
22
22
  },
23
23
  {
24
24
  "index": 1,
25
- "noteSecretKey": "ad44ab63c2ca7890e2a3a7644597dfcb7ad5aece2722d3506aa1b0a2df4d8461",
26
- "notePubkey": "d0ca20135641a5e43124476048992fc61dce1fba6e787d47d34e5a32de86675c",
27
- "cp1": "cp16r9zqy6kgxj7gvfygasy3xf0ccwuu8a6deu8637nfedr9h5xvawqrq3sk4",
28
- "ck1": "ck1p99ktdrr2vpf8unme3mjd9wvgx22840n05aqh78vw9kma337xntshw7pdldn4dujn3e23hgyx9znr3e60g8293gkv0h0xk9mskgqd9qq0cjpsp"
25
+ "noteSecretKey": "75bb52bf9a2d02a10b29f19878117ce67433f582c794b34191e431d427f49f6c",
26
+ "notePubkey": "0f250aa687954aa1fb076b14b0b983a0cac6ce352cab53c91cdebc9a480da527",
27
+ "cp1": "cp1pujs4f58j492r7c8dv2tpwvr5r9vdn349j448jgum67f5jqd55nschpuxm",
28
+ "ck1": "ck1pujs4f58j492r7c8dv2tpwvr5r9vdn349j448jgum67f5jqd55nsmc8ld0udlhzwmjqpgpru86flf7ctqkle2q7fpk2ejd2yw3mmwaf2vmen3nd4lxhj5eafq32y366jln93hsva83uy7x5jgmmj5pxlkuhlqkju"
29
29
  },
30
30
  {
31
31
  "index": 7,
32
- "noteSecretKey": "e9acf5438666e2563e12f77f904298a1c11b6f580ae44adfbaad5897b5f85893",
33
- "notePubkey": "f2bbf60e6d9697e488cdbfe4449045541e753e3062f14d06ad0934c9e98ebcfe",
34
- "cp1": "cp172alvrndj6t7fzxdhljyfyz92s08203svtc56p4dpy6vn6vwhnlqv0yvd2",
35
- "ck1": "ck1r55fx609dq0pz8qg6q73hsa0v4wkdz6ldxqr2rshg72ydvk3aezrv2c77xw8smqckgjrj9h5vp5n4tp04v6hae0yazrzcfcj4p7saespmxl28s"
32
+ "noteSecretKey": "5f7ac44acc23178d3cb365cc6da8d646eaf99af226476aca34381c0b667086ea",
33
+ "notePubkey": "f34d90da258cac365d31a133fe9fa38a23d2f157e67f2bcc5c738134d134d3c2",
34
+ "cp1": "cp17dxepk393jkrvhf35yela8ar3g3a9u2hueljhnzuwwqnf5f560pq8mq7n6",
35
+ "ck1": "ck17dxepk393jkrvhf35yela8ar3g3a9u2hueljhnzuwwqnf5f560pwmpvkw3y748nnxvre09fqwkd2dfuus5hq6hrnphawsv3mdjjh0y4y6en0gtt9pdf9ypazf3t2wwdql9khnyfu2w0sykaxzec5uc5n9v077het"
36
36
  }
37
37
  ]
38
38
  },
@@ -41,29 +41,29 @@
41
41
  "identityPubkey": "79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
42
42
  "host": "mint.example",
43
43
  "seed": "3ae0ea260b8066e219db88cf06b3ea9a170104875f3ea70a8434a2bc478ea121",
44
- "addressNode": "06825d4c6b2d170fa57fa0449dfd5c8576eb166f3c35a8e39cf14db396e2ec9c7c338e8dca8b99b65031b0fbc5740fae7328bb55ff156791f5cd9dc393b4da30",
45
- "cx1": "cx14tvrmc8yw86su4puf327tv28g5hl2re7p2ygwyttfcsqqg6hn9q8cvuw3h9ghxdk2qcmp779ws86uueghd2l79t8j86um8wrjw6d5vqfhgw4f",
44
+ "addressNode": "e113d66606250f23d2c6146faf3bc1d694c3410aeb896a7f8ce1a337afc4b5046723d34610415f6f19c3e349d321f1b8ee4e9e7c7e219f58e7a9c766b91eb2fb",
45
+ "cx1": "cx148dp7xtvqt8dcf4k4fzpeqj07cs9ysphhrry75sc0r45z9x7jl4kwg7ngcgyzhm0r8p7xjwny8cm3mjwne78ugvltrn6n3mxhy0t97cpvxjhf",
46
46
  "notes": [
47
47
  {
48
48
  "index": 0,
49
- "noteSecretKey": "3fe7bd30638deca734f56bec3adc015b32b5095ccd373113aae9392ef13aad09",
50
- "notePubkey": "5d8b9c7229178df9413e818e50535b7c53e8cb9ce519de831d0fd6548beab22e",
51
- "cp1": "cp1tk9ecu3fz7xljsf7sx89q56m03f73juuu5vaaqcaplt9fzl2kghqsdyjd4",
52
- "ck1": "ck154300fcxpmnr9308fs7ut66snvc2xhez2uap2ngn32zha2ew3kv9zz8hjnzncewzdrpk8jxgheg4wthclvl4cdnygkpn9c9kda64swgq34camt"
49
+ "noteSecretKey": "24c3ee1fe8d0e22aa35dcaf638480f105b3715a262baed54a756b88a97482805",
50
+ "notePubkey": "94bda00d55228848f2caac0708f0f4be7a2f4fdf72f77e1161ddcd99d58bcf65",
51
+ "cp1": "cp1jj76qr24y2yy3uk24srs3u85heaz7n7lwtmhuytpmhxen4vteajs2kejep",
52
+ "ck1": "ck1jj76qr24y2yy3uk24srs3u85heaz7n7lwtmhuytpmhxen4vteaj5tawnqkvv5srymr4tggxh8lgjyczykzegdh7l9wks2tfm7s92e9evvxt47jax4p7hywucgv909qvr9wev5538x8c3vfqt2fg7e3tduq85n0ch"
53
53
  },
54
54
  {
55
55
  "index": 1,
56
- "noteSecretKey": "a76597b438f20a6c57995d615ad8fa8f63dadbf2efbcdc8a73e4bdf9c605b203",
57
- "notePubkey": "66866a6420435fea5c9179e5ea9c31fb5cbd985c7f590a2a509cd5ef09e91b5d",
58
- "cp1": "cp1v6rx5epqgd075hy308j748p3ldwtmxzu0avs52jsnn277z0frdwslr7t47",
59
- "ck1": "ck1ea8utp0c6l35xgj6huluu6mypcvuqd9le4mmfm6dlcgl20f60lnpvjxnmtx6afpuxpc70ngdt0uhx07kuzws8amg6fcew2fetanrvyqpljdau4"
56
+ "noteSecretKey": "3a5abd58c3a4b79b93fa3ba9ff1e87db28474d867e0326ad1707cc32a2988636",
57
+ "notePubkey": "d17d3afc667214872105b69825485940c9a1ab35cb792eef4ab907d37da296c4",
58
+ "cp1": "cp1697n4lrxwg2gwgg9k6vz2jzegry6r2e4edujam62hyraxldzjmzq794p6h",
59
+ "ck1": "ck1697n4lrxwg2gwgg9k6vz2jzegry6r2e4edujam62hyraxldzjmzzdf3fc5kf9stnzrz9vmlgu77w74cf5d06ls9c3afu9fy928tfm60ajc7qxr079ucvp0d5da00xa2k87vmj3g6djtq2e539wwgw3zvqvqk44q9"
60
60
  },
61
61
  {
62
62
  "index": 7,
63
- "noteSecretKey": "8fb88ed836e0fe83728642938d6463cee74781b7d4b0d313717be6de50b6d046",
64
- "notePubkey": "14c823d28bbdd662c788ab968ac56f6aef6cb88e622afe11bb6ac2134f24fb80",
65
- "cp1": "cp1znyz855thhtx93ug4wtg43t0dthkewywvg40uydmdtppxneylwqq3nehx2",
66
- "ck1": "ck1gtw6p9hglznv5xhw0z5elf8u66mc2s38gq7703w9mfgl2pc7ds7q092nl8jz8nqh523qw5640lg8gw8kvj60u97mcu9l5zgfkp9hmnqpstf30d"
63
+ "noteSecretKey": "a8111935a495aaaadf4106d3598f26e4cdc8d90a28f936b4e304e2476928cb9e",
64
+ "notePubkey": "17d8d60f42390c25ec9d5960a0f14b330043b6c15ccbc0aa3d9f55b09f51d0a9",
65
+ "cp1": "cp1zlvdvr6z8yxztmyat9s2pu2txvqy8dkptn9up23ana2mp8636z5ss572x9",
66
+ "ck1": "ck1zlvdvr6z8yxztmyat9s2pu2txvqy8dkptn9up23ana2mp8636z5700g92drdgpmrcck94ukp0rv205lt9dr3q8n5me075t8vfr8pmquxeh2q2zyajthm50cu94njcg3ca04sxph29ry0czclncxpdrefxctmphza"
67
67
  }
68
68
  ]
69
69
  },
@@ -72,29 +72,29 @@
72
72
  "identityPubkey": "99e98a193119f2a8adbe6c7da81d3cd64a25742cc49f51f4ec0da44b22bf09bf",
73
73
  "host": "moneyer.dev",
74
74
  "seed": "efd666778ca0baac6648f11f4b3c428655a1a380caa89309a4d18ae1529f0999",
75
- "addressNode": "05d3aa38d42680e7d812aca8f11bedee79b19bcd0ecbe3ecb0fecf3efd5678f9ddcf32d0170b91e809ed08f3a5c06b47042921b7a230072d772edcf58fcb2b89",
76
- "cx1": "cx168cuwapgp0hd6h7resq0uh78eze300vg7ef6t4kmywpcmaptdemdmnej6qtshy0gp8ks3ua9cp45wppfyxm6yvq894mjah843l9jhzg4rxu74",
75
+ "addressNode": "bf754968c89fe2690752d3907cccdf0de31c7d88d91d0e6949cb15758bf2ff33df2d47acb7ea6947efb7f4cd3b1efab328ba0d19991ed162a10c59e6f0902bde",
76
+ "cx1": "cx1q65z0dnsxqhdhkqfv8zmzmfqj35pupz3mw6psarpsq4mhq72kqxa7t284jm75628a7mlfnfmrmatx296p5vej8k3v2ssck0x7zgzhhs70pesc",
77
77
  "notes": [
78
78
  {
79
79
  "index": 0,
80
- "noteSecretKey": "efe31724912e78b6a9262deecc2ad25c70022a551ca7dca2a99058fab81f00cf",
81
- "notePubkey": "5fcdc98dad667ff47d8e0394d9c4fb5664269558de303a4704281c64b01f4ca3",
82
- "cp1": "cp1tlxunrddvellglvwqw2dn38m2ejzd92cmccr53cy9qwxfvqlfj3s74l9ar",
83
- "ck1": "ck1yvcxftc6l8pduzetwhxzxmnled7w4xzgkldy7dsxga90rxux8r7kjy5l9wphc0p79k526wg3x4plk0nx54erv3z0gyt4r8082aqypyqpve8twp"
80
+ "noteSecretKey": "53186a2bd0d7b7eb363f1dc977d70dff851dbd18fcc969b39054c48a31363114",
81
+ "notePubkey": "abe507aba03bf0ff8076aff524240381a87c8ea6960f5b3564e53dd9c490e40c",
82
+ "cp1": "cp140js02aq80c0lqrk4l6jgfqrsx58er4xjc84kdtyu57an3ysusxqlsn468",
83
+ "ck1": "ck140js02aq80c0lqrk4l6jgfqrsx58er4xjc84kdtyu57an3ysusxvjqnkk0xdf85m9a3q7p89ay6v4mphecxzfq88wu50u82vu7ka63l75cncccevldg75yasm4lu0w4p7n977u36n234jd9kyaumznzz65wp7ve6"
84
84
  },
85
85
  {
86
86
  "index": 1,
87
- "noteSecretKey": "4d2988c9a2dbec87b1c737fed42e37424a4a7cf72f2b3721a0668f40b4f8ad02",
88
- "notePubkey": "ae1fc4e14097b00e67343e62c3fad53eb836b201bd3774e24185b137fb7a6c7d",
89
- "cp1": "cp14c0ufc2qj7cquee58e3v87k486urdvsph5mhfcjpskcn07m6d37s6qvndu",
90
- "ck1": "ck12ggha0c0za5clvnx0cdqasuwexn947uyu6wmady9wvrt9xuzj4j3nsjk8r0uzq6yzyq6jmtnpeqarwxq28c7cz756g03et2frnqjtyqqp927xj"
87
+ "noteSecretKey": "647bcb7f67cd8df4f922d6a8e4599875fdbc4557f0d954dadd8deb2abcdc6f85",
88
+ "notePubkey": "ef02ae8326f63e9e08735ee6efe49400fdea7fc3209fbaad634059e40240ec31",
89
+ "cp1": "cp1aup2aqex7clfuzrntmnwley5qr775l7ryz0m4ttrgpv7gqjqascsl32t6c",
90
+ "ck1": "ck1aup2aqex7clfuzrntmnwley5qr775l7ryz0m4ttrgpv7gqjqasclk0a4tf6ckf7gpzwdfflrknq97vpknmzupjy5g9ud502rmnvvrl7zjkpspf9hnygqlqxekte6gu0t40dcnms6s6t70c8lfn39g6jwwu4r5xye"
91
91
  },
92
92
  {
93
93
  "index": 7,
94
- "noteSecretKey": "17bfb4cc3c3768c1cce2b33e8b9600e6231bbd925cd3fcc413009915f0348e4d",
95
- "notePubkey": "254feeb2016cc8deb154983d3da72dcad2c202736eca9031dcefd9693a9faae6",
96
- "cp1": "cp1y487avspdnydav25nq7nmfedetfvyqnndm9fqvwualvkjw5l4tnqkypely",
97
- "ck1": "ck1eesa3wacyrffpnl267vns608cah8cr6n35rlhnydwnq9r94jc2xxfceh0pt40f388u4k995m7f6dw5jhzcpgm97pjwf0dk0h7rj8rhcqt54nxa"
94
+ "noteSecretKey": "8e9f822bac3fa15bf844d5a8089ed5dca5ea8e4dfcb2656db3d6f3c649e2552a",
95
+ "notePubkey": "b7cbcd61baa0bbb11d27f03b933c0be652a44aecc64df90eefdc68182fb02345",
96
+ "cp1": "cp1kl9u6cd65zamz8f87qaex0qtuef2gjhvcexljrh0m35pstasydzsqakw2c",
97
+ "ck1": "ck1kl9u6cd65zamz8f87qaex0qtuef2gjhvcexljrh0m35pstasydz552pn8mu9u3ahmks9wxrutq570dya0cz4l3jdtju3rwgzzdhqcvmdekf8l6rysty2wd6065t5tr7kdy5a9y9fea9lvx0ag6kjch842qmfp2ss"
98
98
  }
99
99
  ]
100
100
  },
@@ -103,29 +103,29 @@
103
103
  "identityPubkey": "99e98a193119f2a8adbe6c7da81d3cd64a25742cc49f51f4ec0da44b22bf09bf",
104
104
  "host": "127.0.0.1:8899",
105
105
  "seed": "efd666778ca0baac6648f11f4b3c428655a1a380caa89309a4d18ae1529f0999",
106
- "addressNode": "9df193134dacac4561674b0f099f2dfcbfea884f3df655aa53117798cb3e3065a2eb93a6d2be16ca6acee95a43317b870a718bf96b0a2163e1c99c52f96518b7",
107
- "cx1": "cx10l8vgpvm7nsa6x8pn87ampuxvevw9eyxj2x2dzg72zk7fzrcfg7696un5mftu9k2dt8wjkjrx9acwzn330ukkz3pv0sun8zjl9j33dcymzxac",
106
+ "addressNode": "4dd8ced68171efb3d313f08aa29914887265f31039572447232b1e264335226a992ef8f9f093546f70831e9c8d02b9935a51c6dcf6b309dea75f5de81dfe794c",
107
+ "cx1": "cx17fp2k94gqgnh9qkrxz6eqfku4tk2ql8tcx8sk9uk0um4lxyfu66fjthcl8cfx4r0wzp3a8ydq2uexkj3cmw0dvcfm6n47h0grhl8jnq57myzr",
108
108
  "notes": [
109
109
  {
110
110
  "index": 0,
111
- "noteSecretKey": "72242afc3854a1c5d41748b25d2fddc06b75b663b69cd051eb8d102262703696",
112
- "notePubkey": "c01e87a6ebb3cb6596284a6b0da265df73bdaf885bfd0760929c7e2828cbfd0c",
113
- "cp1": "cp1cq0g0fhtk09kt93gff4smgn9maemmtugt07swcyjn3lzs2xtl5xqjvp56d",
114
- "ck1": "ck15kws54u2vk84hzmf2a6wm7yhnzljl907lmnsr5grgeg06evcj464qvccyflnzqdm44aenxg4gl2dmxfy34pvk3unt4k5ptl7yfr3hngqhn3gvc"
111
+ "noteSecretKey": "bb9aa4eb4dbd769f27bd6193e6ba061e523d7b23c4f34b6fc5e065eaca8c62d9",
112
+ "notePubkey": "48a749e2ae61bbc17d2855ae58b1b86c6520cf19f1a8fcca27d7e3c1e4679656",
113
+ "cp1": "cp1fzn5nc4wvxauzlfg2kh93vdcd3jjpnce7x50ej386l3urer8jetqv5d2g5",
114
+ "ck1": "ck1fzn5nc4wvxauzlfg2kh93vdcd3jjpnce7x50ej386l3urer8jet2heflrprv99f3fn2hacezrcwvjrll5n77r5ayy0pqh0cst5r8mj8zr0ntst4a6zf58x0v673qy6pjvwz35cerdtf4vxskv6wwp7cmguqzhj8n"
115
115
  },
116
116
  {
117
117
  "index": 1,
118
- "noteSecretKey": "cea7c90475f1cc5c19784bccee03b0f4b3972d6a8c3710fb820720cbd74e0d1d",
119
- "notePubkey": "ba9bcbb4e1b9e5884b40f5c3b15d59352814ca77bd226d51960f289a22e96319",
120
- "cp1": "cp1h2duhd8ph8jcsj6q7hpmzh2ex55pfjnhh53x65vkpu5f5ghfvvvsa3zqpx",
121
- "ck1": "ck126c3ppdcs0708ya2r8ffde5ggtnnp5tdu6und5tnygqu804t034rcu7mgefx0feusscnqr3ym78l2mywev5apjjptg9mm2g9d7sse3gp6tm5ss"
118
+ "noteSecretKey": "d927b683c5903e3835c6536fd182123517366c753b3703ba222ee9f6671e9b3b",
119
+ "notePubkey": "9a0d62bf33af3e6961dd32a9dd77fdd2eddfe40a1041ae9b4a0dfa834f5f6849",
120
+ "cp1": "cp1ngxk90en4ulxjcwax25a6ala6tkaleq2zpq6ax62phagxn6ldpysv0ugap",
121
+ "ck1": "ck1ngxk90en4ulxjcwax25a6ala6tkaleq2zpq6ax62phagxn6ldpyn3m00qgm0n260d70t2x7e95uk4nmpt088qa0nkpqkqmd0unwmq60ze6mm740sapygxdlaje4gqlrygqkscfunh7cva9g95gudzwhgas2f7f9l"
122
122
  },
123
123
  {
124
124
  "index": 7,
125
- "noteSecretKey": "4ea4a3488ae292b38074ef02996ffe5cc82be76e6fc509b0793d8e22be0c181f",
126
- "notePubkey": "49ef82ee7810b6d8099635eb422feca997850663daded48788993ec7d9585965",
127
- "cp1": "cp1f8hc9mnczzmdszvkxh45ytlv4xtc2pnrmt0dfpugnylv0k2ct9jst4p42x",
128
- "ck1": "ck16esd3xmpy5gw2elw3d83hpye7ygf5mtzcuh8aygwpevc9fjwjdmnwldmj3kajcu9da2kz92n5uty3ryqeckjxe586p2ncrsj20re9mgq7vv73l"
125
+ "noteSecretKey": "380b2d0880d914df24f8fc3965695684086718bd9dd0ae8abdf578173c81f9ae",
126
+ "notePubkey": "d14213f7827fbb561e7cc4b686dc5894db25f1cdf37bd2aa9f8f8419a80b7c4d",
127
+ "cp1": "cp169pp8auz07a4v8nucjmgdhzcjndjtuwd7daa925l37zpn2qt03xsawyu6y",
128
+ "ck1": "ck169pp8auz07a4v8nucjmgdhzcjndjtuwd7daa925l37zpn2qt03xjzudtknh5t0zedhrt78qvmf0ud3fs3n8zuaasmll44qs0zwmqqtg8w69l2ng85pgw6mkrrg80jscycq0z9xyfxq7khs7ply44wr86fsjgussv"
129
129
  }
130
130
  ]
131
131
  }
@@ -23,10 +23,10 @@
23
23
  "signature": "ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab"
24
24
  },
25
25
  {
26
- "url": "https://mint.example/w?k1=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&sig=cs210n1p9s9uau4p08z7fee9zx56z6gw8564rnsp8se3f2uwpkpa7yxzecz842de66weae0x0hqv658k75h5ydpqqc9dm652nxsg42m2y82vmqp9qy0pt",
26
+ "url": "https://mint.example/w?k1=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&sig=cs210n14dvflf6u89wxrhp52zgu22ds0cdgegxh4d36p52z6cxydm5r200hq7y3rfrj8d32jpjuguptzhq7zy9l9mjzw4kzwfm9ahku82r58mcpr3lz8j",
27
27
  "k1": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
28
28
  "declaredAmountMsat": 21000,
29
- "signature": "cs210n1p9s9uau4p08z7fee9zx56z6gw8564rnsp8se3f2uwpkpa7yxzecz842de66weae0x0hqv658k75h5ydpqqc9dm652nxsg42m2y82vmqp9qy0pt",
29
+ "signature": "cs210n14dvflf6u89wxrhp52zgu22ds0cdgegxh4d36p52z6cxydm5r200hq7y3rfrj8d32jpjuguptzhq7zy9l9mjzw4kzwfm9ahku82r58mcpr3lz8j",
30
30
  "why": "an amount-bearing cs1 carries the declared amount without a duplicate amount query parameter"
31
31
  },
32
32
  {
@@ -90,8 +90,8 @@
90
90
  "url": "https://mint.example/w?k1=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&amount=21000",
91
91
  "k1": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
92
92
  "amountMsat": 21000,
93
- "signature": "cs210n1p9s9uau4p08z7fee9zx56z6gw8564rnsp8se3f2uwpkpa7yxzecz842de66weae0x0hqv658k75h5ydpqqc9dm652nxsg42m2y82vmqp9qy0pt",
94
- "expect": "https://mint.example/w?k1=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb&sig=cs210n1p9s9uau4p08z7fee9zx56z6gw8564rnsp8se3f2uwpkpa7yxzecz842de66weae0x0hqv658k75h5ydpqqc9dm652nxsg42m2y82vmqp9qy0pt",
93
+ "signature": "cs210n14dvflf6u89wxrhp52zgu22ds0cdgegxh4d36p52z6cxydm5r200hq7y3rfrj8d32jpjuguptzhq7zy9l9mjzw4kzwfm9ahku82r58mcpr3lz8j",
94
+ "expect": "https://mint.example/w?k1=bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb&sig=cs210n14dvflf6u89wxrhp52zgu22ds0cdgegxh4d36p52z6cxydm5r200hq7y3rfrj8d32jpjuguptzhq7zy9l9mjzw4kzwfm9ahku82r58mcpr3lz8j",
95
95
  "why": "the cs1 already carries amount_msat, so the current reference wallet omits the duplicate amount parameter"
96
96
  }
97
97
  ],
@@ -106,8 +106,8 @@
106
106
  {
107
107
  "url": "https://mint.example/w?k1=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&amount=21000",
108
108
  "amountMsat": 21000,
109
- "signature": "cs210n1p9s9uau4p08z7fee9zx56z6gw8564rnsp8se3f2uwpkpa7yxzecz842de66weae0x0hqv658k75h5ydpqqc9dm652nxsg42m2y82vmqp9qy0pt",
110
- "expect": "https://mint.example/w?sig=cs210n1p9s9uau4p08z7fee9zx56z6gw8564rnsp8se3f2uwpkpa7yxzecz842de66weae0x0hqv658k75h5ydpqqc9dm652nxsg42m2y82vmqp9qy0pt",
109
+ "signature": "cs210n14dvflf6u89wxrhp52zgu22ds0cdgegxh4d36p52z6cxydm5r200hq7y3rfrj8d32jpjuguptzhq7zy9l9mjzw4kzwfm9ahku82r58mcpr3lz8j",
110
+ "expect": "https://mint.example/w?sig=cs210n14dvflf6u89wxrhp52zgu22ds0cdgegxh4d36p52z6cxydm5r200hq7y3rfrj8d32jpjuguptzhq7zy9l9mjzw4kzwfm9ahku82r58mcpr3lz8j",
111
111
  "why": "a secret-free mirror also avoids duplicating the amount already encoded in cs1"
112
112
  }
113
113
  ]