From a7bd62f508859603d48df9cce6204931eac4cd94 Mon Sep 17 00:00:00 2001 From: kvngmikey Date: Mon, 23 Feb 2026 10:21:23 +0100 Subject: [PATCH 1/3] docs(nut-11): add SigAllSigningPackage for multi-party SIG_ALL signing --- 11.md | 64 ++++++++++++++++++++++++++++++++++++++++++++++++ tests/11-test.md | 39 +++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+) diff --git a/11.md b/11.md index a529d414..295bd72f 100644 --- a/11.md +++ b/11.md @@ -154,6 +154,70 @@ msg = secret_0 || C_0 || ... || secret_n || C_n || amount_0 || B_0 || ... || amo Here, `||` denotes string concatenation. The `C` of each input and `B_` of each output are **hex strings** and `amount` is a UTF-encoded string. +### SigAllSigningPackage + +To facilitate multi-party signing for [`SIG_ALL`](#signature-flag-sig_all) transactions, wallets can exchange a `SigAllSigningPackage` containing the minimal data required to reconstruct the transaction message and produce signatures. It is a wallet-led transport format. + +The `SigAllSigningPackage` has the following structure: + +```json +{ + "version": "sigallA", + "type": "swap" | "melt", + "quote": , // Optional, for melt only + "inputs": [ + { + "secret": , + "C": + } + ], + "outputs": , + "digests": { + "legacy": , // Optional + "current": + }, + "witness": { + "signatures": + } // Optional +} +``` + +The package is serialized to a string by JSON-encoding the object with specific key ordering (see `SigAllSigningPackage` definition), converting to base64url, and prefixing with `sigallA`. The keys must be sorted as: `version`, `type`, `quote` (if present), `inputs`, `outputs`, `digests` (if present), `witness` (if present). + +The [SIG_ALL swap example] would be represented as the following `SigAllSigningPackage`: + +```json +{ + "version": "sigallA", + "type": "swap", + "inputs": [ + { + "secret": "[\"P2PK\",{\"nonce\":\"c7f280eb55c1e8564e03db06973e94bc9b666d9e1ca42ad278408fe625950303\",\"data\":\"030d8acedfe072c9fa449a1efe0817157403fbec460d8e79f957966056e5dd76c1\",\"tags\":[[\"sigflag\",\"SIG_ALL\"]]}]", + "C": "02c97ee3d1db41cf0a3ddb601724be8711a032950811bf326f8219c50c4808d3cd" + } + ], + "outputs": [ + { + "amount": 2, + "id": "00bfa73302d12ffd", + "B_": "038ec853d65ae1b79b5cdbc2774150b2cb288d6d26e12958a16fb33c32d9a86c39" + } + ], + "digests": { + "legacy": "de7f9e3ca0fcc5ed3258fcf83dbf1be7fa78a5ed6da7bf2aa60d61e9dc6eb09a", + "current": "de7f9e3ca0fcc5ed3258fcf83dbf1be7fa78a5ed6da7bf2aa60d61e9dc6eb09a" + }, + "witness": { + "signatures": ["ce017ca25b1b97df2f72e4b49f69ac26a240ce14b3690a8fe619d41ccc42d3c1282e073f85acd36dc50011638906f35b56615f24e4d03e8effe8257f6a808538"] + } +} +``` + +Serialized: +``` +sigallAeyJ2ZXJzaW9uIjoic2lnYWxsQSIsInR5cGUiOiJzd2FwIiwiaW5wdXRzIjpbeyJzZWNyZXQiOiJbXCJQMlBLXCIse1wibm9uY2VcIjpcImM3ZjI4MGViNTVjMWU4NTY0ZTAzZGIwNjk3M2U5NGJjOWI2NjZkOWUxY2E0MmFkMjc4NDA4ZmU2MjU5NTAzMDNcIixcImRhdGFcIjpcIjAzMGQ4YWNlZGZlMDcyYzlmYTQ0OWExZWZlMDgxNzE1NzQwM2ZiZWM0NjBkOGU3OWY5NTc5NjYwNTZlNWRkNzZjMVwiLFwidGFnc1wiOltbXCJzaWdmbGFnXCIsXCJTSUdfQUxMXCJdXX1dIiwiQyI6IjAyYzk3ZWUzZDFkYjQxY2YwYTNkZGI2MDE3MjRiZTg3MTFhMDMyOTUwODExYmYzMjZmODIxOWM1MGM0ODA4ZDNjZCJ9XSwib3V0cHV0cyI6W3siYW1vdW50IjoyLCJpZCI6IjAwYmZhNzMzMDJkMTJmZmQiLCJCXyI6IjAzOGVjODUzZDY1YWUxYjc5YjVjZGJjMjc3NDE1MGIyY2IyODhkNmQyNmUxMjk1OGExNmZiMzNjMzJkOWE4NmMzOSJ9XSwiZGlnZXN0cyI6eyJsZWdhY3kiOiJkZTdmOWUzY2EwZmNjNWVkMzI1OGZjZjgzZGJmMWJlN2ZhNzhhNWVkNmRhN2JmMmFhNjBkNjFlOWRjNmViMDlhIiwiY3VycmVudCI6ImRlN2Y5ZTNjYTBmY2M1ZWQzMjU4ZmNmODNkYmYxYmU3ZmE3OGE1ZWQ2ZGE3YmYyYWE2MGQ2MWU5ZGM2ZWIwOWEifSwid2l0bmVzcyI6eyJzaWduYXR1cmVzIjpbImNlMDE3Y2EyNWIxYjk3ZGYyZjcyZTRiNDlmNjlhYzI2YTI0MGNlMTRiMzY5MGE4ZmU2MTlkNDFjY2M0MmQzYzEyODJlMDczZjg1YWNkMzZkYzUwMDExNjM4OTA2ZjM1YjU2NjE1ZjI0ZTRkMDNlOGVmZmU4MjU3ZjZhODA4NTM4Il19fQ +``` + ## Locktime Tag The `locktime` tag signals which set of locking rules the mint should apply. There are three possible states the `locktime` tag can represent: diff --git a/tests/11-test.md b/tests/11-test.md index 96468410..d9e15775 100644 --- a/tests/11-test.md +++ b/tests/11-test.md @@ -409,3 +409,42 @@ The following is a valid multi-sig `SIG_ALL` `MeltRequest`. ] } ``` + +### SigAllSigningPackage Test Vectors + +The following is an example of a `SigAllSigningPackage`, derived from a `swap` transaction. + +Input transaction data: + +```json +{ + "inputs": [ + { + "amount": 2, + "id": "00bfa73302d12ffd", + "secret": "[\"P2PK\",{\"nonce\":\"c7f280eb55c1e8564e03db06973e94bc9b666d9e1ca42ad278408fe625950303\",\"data\":\"030d8acedfe072c9fa449a1efe0817157403fbec460d8e79f957966056e5dd76c1\",\"tags\":[[\"sigflag\",\"SIG_ALL\"]]}]", + "C": "02c97ee3d1db41cf0a3ddb601724be8711a032950811bf326f8219c50c4808d3cd", + "witness": "{\"signatures\":[\"ce017ca25b1b97df2f72e4b49f69ac26a240ce14b3690a8fe619d41ccc42d3c1282e073f85acd36dc50011638906f35b56615f24e4d03e8effe8257f6a808538\"]}" + } + ], + "outputs": [ + { + "amount": 2, + "id": "00bfa73302d12ffd", + "B_": "038ec853d65ae1b79b5cdbc2774150b2cb288d6d26e12958a16fb33c32d9a86c39" + } + ] +} +``` + +Derived `SigAllSigningPackage` JSON: + +```json +{"version":"sigallA","type":"swap","inputs":[{"secret":"[\"P2PK\",{\"nonce\":\"c7f280eb55c1e8564e03db06973e94bc9b666d9e1ca42ad278408fe625950303\",\"data\":\"030d8acedfe072c9fa449a1efe0817157403fbec460d8e79f957966056e5dd76c1\",\"tags\":[[\"sigflag\",\"SIG_ALL\"]]}]","C":"02c97ee3d1db41cf0a3ddb601724be8711a032950811bf326f8219c50c4808d3cd"}],"outputs":[{"amount":2,"id":"00bfa73302d12ffd","B_":"038ec853d65ae1b79b5cdbc2774150b2cb288d6d26e12958a16fb33c32d9a86c39"}],"digests":{"legacy":"de7f9e3ca0fcc5ed3258fcf83dbf1be7fa78a5ed6da7bf2aa60d61e9dc6eb09a","current":"de7f9e3ca0fcc5ed3258fcf83dbf1be7fa78a5ed6da7bf2aa60d61e9dc6eb09a"},"witness":{"signatures":["ce017ca25b1b97df2f72e4b49f69ac26a240ce14b3690a8fe619d41ccc42d3c1282e073f85acd36dc50011638906f35b56615f24e4d03e8effe8257f6a808538"]}} +``` + +Serialized string: + +``` +sigallAeyJ2ZXJzaW9uIjoic2lnYWxsQSIsInR5cGUiOiJzd2FwIiwiaW5wdXRzIjpbeyJzZWNyZXQiOiJbXCJQMlBLXCIse1wibm9uY2VcIjpcImM3ZjI4MGViNTVjMWU4NTY0ZTAzZGIwNjk3M2U5NGJjOWI2NjZkOWUxY2E0MmFkMjc4NDA4ZmU2MjU5NTAzMDNcIixcImRhdGFcIjpcIjAzMGQ4YWNlZGZlMDcyYzlmYTQ0OWExZWZlMDgxNzE1NzQwM2ZiZWM0NjBkOGU3OWY5NTc5NjYwNTZlNWRkNzZjMVwiLFwidGFnc1wiOltbXCJzaWdmbGFnXCIsXCJTSUdfQUxMXCJdXX1dIiwiQyI6IjAyYzk3ZWUzZDFkYjQxY2YwYTNkZGI2MDE3MjRiZTg3MTFhMDMyOTUwODExYmYzMjZmODIxOWM1MGM0ODA4ZDNjZCJ9XSwib3V0cHV0cyI6W3siYW1vdW50IjoyLCJpZCI6IjAwYmZhNzMzMDJkMTJmZmQiLCJCXyI6IjAzOGVjODUzZDY1YWUxYjc5YjVjZGJjMjc3NDE1MGIyY2IyODhkNmQyNmUxMjk1OGExNmZiMzNjMzJkOWE4NmMzOSJ9XSwiZGlnZXN0cyI6eyJsZWdhY3kiOiJkZTdmOWUzY2EwZmNjNWVkMzI1OGZjZjgzZGJmMWJlN2ZhNzhhNWVkNmRhN2JmMmFhNjBkNjFlOWRjNmViMDlhIiwiY3VycmVudCI6ImRlN2Y5ZTNjYTBmY2M1ZWQzMjU4ZmNmODNkYmYxYmU3ZmE3OGE1ZWQ2ZGE3YmYyYWE2MGQ2MWU5ZGM2ZWIwOWEifSwid2l0bmVzcyI6eyJzaWduYXR1cmVzIjpbImNlMDE3Y2EyNWIxYjk3ZGYyZjcyZTRiNDlmNjlhYzI2YTI0MGNlMTRiMzY5MGE4ZmU2MTlkNDFjY2M0MmQzYzEyODJlMDczZjg1YWNkMzZkYzUwMDExNjM4OTA2ZjM1YjU2NjE1ZjI0ZTRkMDNlOGVmZmU4MjU3ZjZhODA4NTM4Il19fQ +``` From 3d79c9768eb22ce59169ff51442e2d5570ecac90 Mon Sep 17 00:00:00 2001 From: kvngmikey Date: Mon, 23 Feb 2026 10:29:45 +0100 Subject: [PATCH 2/3] ci fix --- 11.md | 5 ++++- tests/11-test.md | 27 ++++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/11.md b/11.md index 295bd72f..2d6fd365 100644 --- a/11.md +++ b/11.md @@ -208,12 +208,15 @@ The [SIG_ALL swap example] would be represented as the following `SigAllSigningP "current": "de7f9e3ca0fcc5ed3258fcf83dbf1be7fa78a5ed6da7bf2aa60d61e9dc6eb09a" }, "witness": { - "signatures": ["ce017ca25b1b97df2f72e4b49f69ac26a240ce14b3690a8fe619d41ccc42d3c1282e073f85acd36dc50011638906f35b56615f24e4d03e8effe8257f6a808538"] + "signatures": [ + "ce017ca25b1b97df2f72e4b49f69ac26a240ce14b3690a8fe619d41ccc42d3c1282e073f85acd36dc50011638906f35b56615f24e4d03e8effe8257f6a808538" + ] } } ``` Serialized: + ``` sigallAeyJ2ZXJzaW9uIjoic2lnYWxsQSIsInR5cGUiOiJzd2FwIiwiaW5wdXRzIjpbeyJzZWNyZXQiOiJbXCJQMlBLXCIse1wibm9uY2VcIjpcImM3ZjI4MGViNTVjMWU4NTY0ZTAzZGIwNjk3M2U5NGJjOWI2NjZkOWUxY2E0MmFkMjc4NDA4ZmU2MjU5NTAzMDNcIixcImRhdGFcIjpcIjAzMGQ4YWNlZGZlMDcyYzlmYTQ0OWExZWZlMDgxNzE1NzQwM2ZiZWM0NjBkOGU3OWY5NTc5NjYwNTZlNWRkNzZjMVwiLFwidGFnc1wiOltbXCJzaWdmbGFnXCIsXCJTSUdfQUxMXCJdXX1dIiwiQyI6IjAyYzk3ZWUzZDFkYjQxY2YwYTNkZGI2MDE3MjRiZTg3MTFhMDMyOTUwODExYmYzMjZmODIxOWM1MGM0ODA4ZDNjZCJ9XSwib3V0cHV0cyI6W3siYW1vdW50IjoyLCJpZCI6IjAwYmZhNzMzMDJkMTJmZmQiLCJCXyI6IjAzOGVjODUzZDY1YWUxYjc5YjVjZGJjMjc3NDE1MGIyY2IyODhkNmQyNmUxMjk1OGExNmZiMzNjMzJkOWE4NmMzOSJ9XSwiZGlnZXN0cyI6eyJsZWdhY3kiOiJkZTdmOWUzY2EwZmNjNWVkMzI1OGZjZjgzZGJmMWJlN2ZhNzhhNWVkNmRhN2JmMmFhNjBkNjFlOWRjNmViMDlhIiwiY3VycmVudCI6ImRlN2Y5ZTNjYTBmY2M1ZWQzMjU4ZmNmODNkYmYxYmU3ZmE3OGE1ZWQ2ZGE3YmYyYWE2MGQ2MWU5ZGM2ZWIwOWEifSwid2l0bmVzcyI6eyJzaWduYXR1cmVzIjpbImNlMDE3Y2EyNWIxYjk3ZGYyZjcyZTRiNDlmNjlhYzI2YTI0MGNlMTRiMzY5MGE4ZmU2MTlkNDFjY2M0MmQzYzEyODJlMDczZjg1YWNkMzZkYzUwMDExNjM4OTA2ZjM1YjU2NjE1ZjI0ZTRkMDNlOGVmZmU4MjU3ZjZhODA4NTM4Il19fQ ``` diff --git a/tests/11-test.md b/tests/11-test.md index d9e15775..8b8b4645 100644 --- a/tests/11-test.md +++ b/tests/11-test.md @@ -440,7 +440,32 @@ Input transaction data: Derived `SigAllSigningPackage` JSON: ```json -{"version":"sigallA","type":"swap","inputs":[{"secret":"[\"P2PK\",{\"nonce\":\"c7f280eb55c1e8564e03db06973e94bc9b666d9e1ca42ad278408fe625950303\",\"data\":\"030d8acedfe072c9fa449a1efe0817157403fbec460d8e79f957966056e5dd76c1\",\"tags\":[[\"sigflag\",\"SIG_ALL\"]]}]","C":"02c97ee3d1db41cf0a3ddb601724be8711a032950811bf326f8219c50c4808d3cd"}],"outputs":[{"amount":2,"id":"00bfa73302d12ffd","B_":"038ec853d65ae1b79b5cdbc2774150b2cb288d6d26e12958a16fb33c32d9a86c39"}],"digests":{"legacy":"de7f9e3ca0fcc5ed3258fcf83dbf1be7fa78a5ed6da7bf2aa60d61e9dc6eb09a","current":"de7f9e3ca0fcc5ed3258fcf83dbf1be7fa78a5ed6da7bf2aa60d61e9dc6eb09a"},"witness":{"signatures":["ce017ca25b1b97df2f72e4b49f69ac26a240ce14b3690a8fe619d41ccc42d3c1282e073f85acd36dc50011638906f35b56615f24e4d03e8effe8257f6a808538"]}} +{ + "version": "sigallA", + "type": "swap", + "inputs": [ + { + "secret": "[\"P2PK\",{\"nonce\":\"c7f280eb55c1e8564e03db06973e94bc9b666d9e1ca42ad278408fe625950303\",\"data\":\"030d8acedfe072c9fa449a1efe0817157403fbec460d8e79f957966056e5dd76c1\",\"tags\":[[\"sigflag\",\"SIG_ALL\"]]}]", + "C": "02c97ee3d1db41cf0a3ddb601724be8711a032950811bf326f8219c50c4808d3cd" + } + ], + "outputs": [ + { + "amount": 2, + "id": "00bfa73302d12ffd", + "B_": "038ec853d65ae1b79b5cdbc2774150b2cb288d6d26e12958a16fb33c32d9a86c39" + } + ], + "digests": { + "legacy": "de7f9e3ca0fcc5ed3258fcf83dbf1be7fa78a5ed6da7bf2aa60d61e9dc6eb09a", + "current": "de7f9e3ca0fcc5ed3258fcf83dbf1be7fa78a5ed6da7bf2aa60d61e9dc6eb09a" + }, + "witness": { + "signatures": [ + "ce017ca25b1b97df2f72e4b49f69ac26a240ce14b3690a8fe619d41ccc42d3c1282e073f85acd36dc50011638906f35b56615f24e4d03e8effe8257f6a808538" + ] + } +} ``` Serialized string: From ea8151dd19319777a14553b71572f70b16d30760 Mon Sep 17 00:00:00 2001 From: kvngmikey Date: Mon, 23 Feb 2026 14:04:11 +0100 Subject: [PATCH 3/3] comments addressed --- 11.md | 40 ++++++---------------------------------- tests/11-test.md | 4 ++-- 2 files changed, 8 insertions(+), 36 deletions(-) diff --git a/11.md b/11.md index 2d6fd365..faceab58 100644 --- a/11.md +++ b/11.md @@ -156,7 +156,7 @@ Here, `||` denotes string concatenation. The `C` of each input and `B_` of each ### SigAllSigningPackage -To facilitate multi-party signing for [`SIG_ALL`](#signature-flag-sig_all) transactions, wallets can exchange a `SigAllSigningPackage` containing the minimal data required to reconstruct the transaction message and produce signatures. It is a wallet-led transport format. +To facilitate multi-party signing for [`SIG_ALL`](#signature-flag-sig_all) transactions, wallets can exchange a `SigAllSigningPackage` containing the minimal data required to reconstruct the transaction message and produce signatures. It is a wallet-to-wallet transport format. Mints do not process these packages. The `SigAllSigningPackage` has the following structure: @@ -184,43 +184,14 @@ The `SigAllSigningPackage` has the following structure: The package is serialized to a string by JSON-encoding the object with specific key ordering (see `SigAllSigningPackage` definition), converting to base64url, and prefixing with `sigallA`. The keys must be sorted as: `version`, `type`, `quote` (if present), `inputs`, `outputs`, `digests` (if present), `witness` (if present). -The [SIG_ALL swap example] would be represented as the following `SigAllSigningPackage`: +Below is a sample base64url encoded `SigAllSigningPackage`. -```json -{ - "version": "sigallA", - "type": "swap", - "inputs": [ - { - "secret": "[\"P2PK\",{\"nonce\":\"c7f280eb55c1e8564e03db06973e94bc9b666d9e1ca42ad278408fe625950303\",\"data\":\"030d8acedfe072c9fa449a1efe0817157403fbec460d8e79f957966056e5dd76c1\",\"tags\":[[\"sigflag\",\"SIG_ALL\"]]}]", - "C": "02c97ee3d1db41cf0a3ddb601724be8711a032950811bf326f8219c50c4808d3cd" - } - ], - "outputs": [ - { - "amount": 2, - "id": "00bfa73302d12ffd", - "B_": "038ec853d65ae1b79b5cdbc2774150b2cb288d6d26e12958a16fb33c32d9a86c39" - } - ], - "digests": { - "legacy": "de7f9e3ca0fcc5ed3258fcf83dbf1be7fa78a5ed6da7bf2aa60d61e9dc6eb09a", - "current": "de7f9e3ca0fcc5ed3258fcf83dbf1be7fa78a5ed6da7bf2aa60d61e9dc6eb09a" - }, - "witness": { - "signatures": [ - "ce017ca25b1b97df2f72e4b49f69ac26a240ce14b3690a8fe619d41ccc42d3c1282e073f85acd36dc50011638906f35b56615f24e4d03e8effe8257f6a808538" - ] - } -} ``` - -Serialized: - -``` -sigallAeyJ2ZXJzaW9uIjoic2lnYWxsQSIsInR5cGUiOiJzd2FwIiwiaW5wdXRzIjpbeyJzZWNyZXQiOiJbXCJQMlBLXCIse1wibm9uY2VcIjpcImM3ZjI4MGViNTVjMWU4NTY0ZTAzZGIwNjk3M2U5NGJjOWI2NjZkOWUxY2E0MmFkMjc4NDA4ZmU2MjU5NTAzMDNcIixcImRhdGFcIjpcIjAzMGQ4YWNlZGZlMDcyYzlmYTQ0OWExZWZlMDgxNzE1NzQwM2ZiZWM0NjBkOGU3OWY5NTc5NjYwNTZlNWRkNzZjMVwiLFwidGFnc1wiOltbXCJzaWdmbGFnXCIsXCJTSUdfQUxMXCJdXX1dIiwiQyI6IjAyYzk3ZWUzZDFkYjQxY2YwYTNkZGI2MDE3MjRiZTg3MTFhMDMyOTUwODExYmYzMjZmODIxOWM1MGM0ODA4ZDNjZCJ9XSwib3V0cHV0cyI6W3siYW1vdW50IjoyLCJpZCI6IjAwYmZhNzMzMDJkMTJmZmQiLCJCXyI6IjAzOGVjODUzZDY1YWUxYjc5YjVjZGJjMjc3NDE1MGIyY2IyODhkNmQyNmUxMjk1OGExNmZiMzNjMzJkOWE4NmMzOSJ9XSwiZGlnZXN0cyI6eyJsZWdhY3kiOiJkZTdmOWUzY2EwZmNjNWVkMzI1OGZjZjgzZGJmMWJlN2ZhNzhhNWVkNmRhN2JmMmFhNjBkNjFlOWRjNmViMDlhIiwiY3VycmVudCI6ImRlN2Y5ZTNjYTBmY2M1ZWQzMjU4ZmNmODNkYmYxYmU3ZmE3OGE1ZWQ2ZGE3YmYyYWE2MGQ2MWU5ZGM2ZWIwOWEifSwid2l0bmVzcyI6eyJzaWduYXR1cmVzIjpbImNlMDE3Y2EyNWIxYjk3ZGYyZjcyZTRiNDlmNjlhYzI2YTI0MGNlMTRiMzY5MGE4ZmU2MTlkNDFjY2M0MmQzYzEyODJlMDczZjg1YWNkMzZkYzUwMDExNjM4OTA2ZjM1YjU2NjE1ZjI0ZTRkMDNlOGVmZmU4MjU3ZjZhODA4NTM4Il19fQ +sigallAeyJ2ZXJzaW9uIjoic2lnYWxsQSIsInR5cGUiOiJzd2FwIiwiaW5wdXRzIjpbeyJzZWNyZXQiOiJbXCJQMlBLXCIse1wibm9uY2VcIjpcImM3ZjI4MGViNTVjMWU4NTY0ZTAzZGIwNjk3M2U5NGJjOWI2NjZkOWUxY2E0MmFkMjc4NDA4ZmU2MjU5NTAzMDNcIixcImRhdGFcIjpcIjAzMGQ4YWNlZGZlMDcyYzlmYTQ0OWExZWZlMDgxNzE1NzQwM2ZiZWM0NjBkOGU3OWY5NTc5NjYwNTZlNWRkNzZjMVwiLFwidGFnc1wiOltbXCJzaWdmbGFnXCIsXCJTSUdfQUxMXCJdXX1dIiwiQyI6IjAyYzk3ZWUzZDFkYjQxY2YwYTNkZGI2MDE3MjRiZTg3MTFhMDMyOTUwODExYmYzMjZmODIxOWM1MGM0ODA4ZDNjZCJ9XSwib3V0cHV0cyI6W3siYW1vdW50IjoyLCJpZCI6IjAwYmZhNzMzMDJkMTJmZmQiLCJCXyI6IjAzOGVjODUzZDY1YWUxYjc5YjVjZGJjMjc3NDE1MGIyY2IyODhkNmQyNmUxMjk1OGExNmZiMzNjMzJkOWE4NmMzOSJ9XSwiZGlnZXN0cyI6eyJsZWdhY3kiOiJjZjZlODBhZjM1NGNkMmRhOTFhNDgxNTljNDM3NzJlYjM4ZTVjMWMwODkzM2E4NzA5ZjA2Mzg5MWEwZjYwMDZkIiwiY3VycmVudCI6ImRlN2Y5ZTNjYTBmY2M1ZWQzMjU4ZmNmODNkYmYxYmU3ZmE3OGE1ZWQ2ZGE3YmYyYWE2MGQ2MWU5ZGM2ZWIwOWEifSwid2l0bmVzcyI6eyJzaWduYXR1cmVzIjpbImNlMDE3Y2EyNWIxYjk3ZGYyZjcyZTRiNDlmNjlhYzI2YTI0MGNlMTRiMzY5MGE4ZmU2MTlkNDFjY2M0MmQzYzEyODJlMDczZjg1YWNkMzZkYzUwMDExNjM4OTA2ZjM1YjU2NjE1ZjI0ZTRkMDNlOGVmZmU4MjU3ZjZhODA4NTM4Il19fQ ``` +See the [test vectors][tests] for a full example. + ## Locktime Tag The `locktime` tag signals which set of locking rules the mint should apply. There are three possible states the `locktime` tag can represent: @@ -355,3 +326,4 @@ The [NUT-06][06] `MintMethodSetting` indicates support for this feature: [10]: 10.md [11]: 11.md [12]: 12.md +[tests]: tests/11-test.md diff --git a/tests/11-test.md b/tests/11-test.md index 8b8b4645..92250108 100644 --- a/tests/11-test.md +++ b/tests/11-test.md @@ -457,7 +457,7 @@ Derived `SigAllSigningPackage` JSON: } ], "digests": { - "legacy": "de7f9e3ca0fcc5ed3258fcf83dbf1be7fa78a5ed6da7bf2aa60d61e9dc6eb09a", + "legacy": "cf6e80af354cd2da91a48159c43772eb38e5c1c08933a8709f063891a0f6006d", "current": "de7f9e3ca0fcc5ed3258fcf83dbf1be7fa78a5ed6da7bf2aa60d61e9dc6eb09a" }, "witness": { @@ -471,5 +471,5 @@ Derived `SigAllSigningPackage` JSON: Serialized string: ``` -sigallAeyJ2ZXJzaW9uIjoic2lnYWxsQSIsInR5cGUiOiJzd2FwIiwiaW5wdXRzIjpbeyJzZWNyZXQiOiJbXCJQMlBLXCIse1wibm9uY2VcIjpcImM3ZjI4MGViNTVjMWU4NTY0ZTAzZGIwNjk3M2U5NGJjOWI2NjZkOWUxY2E0MmFkMjc4NDA4ZmU2MjU5NTAzMDNcIixcImRhdGFcIjpcIjAzMGQ4YWNlZGZlMDcyYzlmYTQ0OWExZWZlMDgxNzE1NzQwM2ZiZWM0NjBkOGU3OWY5NTc5NjYwNTZlNWRkNzZjMVwiLFwidGFnc1wiOltbXCJzaWdmbGFnXCIsXCJTSUdfQUxMXCJdXX1dIiwiQyI6IjAyYzk3ZWUzZDFkYjQxY2YwYTNkZGI2MDE3MjRiZTg3MTFhMDMyOTUwODExYmYzMjZmODIxOWM1MGM0ODA4ZDNjZCJ9XSwib3V0cHV0cyI6W3siYW1vdW50IjoyLCJpZCI6IjAwYmZhNzMzMDJkMTJmZmQiLCJCXyI6IjAzOGVjODUzZDY1YWUxYjc5YjVjZGJjMjc3NDE1MGIyY2IyODhkNmQyNmUxMjk1OGExNmZiMzNjMzJkOWE4NmMzOSJ9XSwiZGlnZXN0cyI6eyJsZWdhY3kiOiJkZTdmOWUzY2EwZmNjNWVkMzI1OGZjZjgzZGJmMWJlN2ZhNzhhNWVkNmRhN2JmMmFhNjBkNjFlOWRjNmViMDlhIiwiY3VycmVudCI6ImRlN2Y5ZTNjYTBmY2M1ZWQzMjU4ZmNmODNkYmYxYmU3ZmE3OGE1ZWQ2ZGE3YmYyYWE2MGQ2MWU5ZGM2ZWIwOWEifSwid2l0bmVzcyI6eyJzaWduYXR1cmVzIjpbImNlMDE3Y2EyNWIxYjk3ZGYyZjcyZTRiNDlmNjlhYzI2YTI0MGNlMTRiMzY5MGE4ZmU2MTlkNDFjY2M0MmQzYzEyODJlMDczZjg1YWNkMzZkYzUwMDExNjM4OTA2ZjM1YjU2NjE1ZjI0ZTRkMDNlOGVmZmU4MjU3ZjZhODA4NTM4Il19fQ +sigallAeyJ2ZXJzaW9uIjoic2lnYWxsQSIsInR5cGUiOiJzd2FwIiwiaW5wdXRzIjpbeyJzZWNyZXQiOiJbXCJQMlBLXCIse1wibm9uY2VcIjpcImM3ZjI4MGViNTVjMWU4NTY0ZTAzZGIwNjk3M2U5NGJjOWI2NjZkOWUxY2E0MmFkMjc4NDA4ZmU2MjU5NTAzMDNcIixcImRhdGFcIjpcIjAzMGQ4YWNlZGZlMDcyYzlmYTQ0OWExZWZlMDgxNzE1NzQwM2ZiZWM0NjBkOGU3OWY5NTc5NjYwNTZlNWRkNzZjMVwiLFwidGFnc1wiOltbXCJzaWdmbGFnXCIsXCJTSUdfQUxMXCJdXX1dIiwiQyI6IjAyYzk3ZWUzZDFkYjQxY2YwYTNkZGI2MDE3MjRiZTg3MTFhMDMyOTUwODExYmYzMjZmODIxOWM1MGM0ODA4ZDNjZCJ9XSwib3V0cHV0cyI6W3siYW1vdW50IjoyLCJpZCI6IjAwYmZhNzMzMDJkMTJmZmQiLCJCXyI6IjAzOGVjODUzZDY1YWUxYjc5YjVjZGJjMjc3NDE1MGIyY2IyODhkNmQyNmUxMjk1OGExNmZiMzNjMzJkOWE4NmMzOSJ9XSwiZGlnZXN0cyI6eyJsZWdhY3kiOiJjZjZlODBhZjM1NGNkMmRhOTFhNDgxNTljNDM3NzJlYjM4ZTVjMWMwODkzM2E4NzA5ZjA2Mzg5MWEwZjYwMDZkIiwiY3VycmVudCI6ImRlN2Y5ZTNjYTBmY2M1ZWQzMjU4ZmNmODNkYmYxYmU3ZmE3OGE1ZWQ2ZGE3YmYyYWE2MGQ2MWU5ZGM2ZWIwOWEifSwid2l0bmVzcyI6eyJzaWduYXR1cmVzIjpbImNlMDE3Y2EyNWIxYjk3ZGYyZjcyZTRiNDlmNjlhYzI2YTI0MGNlMTRiMzY5MGE4ZmU2MTlkNDFjY2M0MmQzYzEyODJlMDczZjg1YWNkMzZkYzUwMDExNjM4OTA2ZjM1YjU2NjE1ZjI0ZTRkMDNlOGVmZmU4MjU3ZjZhODA4NTM4Il19fQ ```