{
  "schema": "tn12-wallet-external-signer-result-template/v1",
  "network": "kaspa-testnet-12",
  "generatedAt": "2026-05-10T23:13:04.820Z",
  "status": "external-signer-result-template-ready",
  "summary": {
    "templates": 4,
    "recommendedFirstPass": 2,
    "payloadTemplates": 1,
    "computeBudgetTemplates": 1
  },
  "templates": [
    {
      "id": "ureq-fcfdf1df-standard:external-signer-return",
      "status": "pending-external-signer",
      "requestId": "ureq-fcfdf1df-standard",
      "label": "DeFi v1 multi-wallet A receipt",
      "recommendedFirstPass": true,
      "reviewFingerprint": "03022c4021c69473bba1873e7141fb87d28d5bc80fad988b6bf8859f34980fc4",
      "transactionId": "ff7835059368b559db98e6625b0ffc82e1df2c37cb33f2fbe8abb6408d45ceaa",
      "payloadBytes": 154,
      "inputBudgetReport": [
        {
          "inputIndex": 0,
          "sigOpCount": 1,
          "computeBudget": null
        }
      ],
      "signedTransaction": "",
      "signerName": "",
      "signerVersion": "",
      "userAction": "not-yet-performed",
      "route": "payload-preserving-wrpc",
      "notes": [
        "Fill signedTransaction only after an external signer returns the exact reviewed transaction.",
        "Do not change reviewFingerprint, payloadBytes, transactionId, sigOpCount, or computeBudget to make validation pass.",
        "After submit, accepted virtual-chain replay must match before app-state promotion."
      ]
    },
    {
      "id": "ureq-fda320a9-standard:external-signer-return",
      "status": "pending-external-signer",
      "requestId": "ureq-fda320a9-standard",
      "label": "Role-separated escrow release",
      "recommendedFirstPass": false,
      "reviewFingerprint": "3f3594fede596a084d1b06b8aba37989e984a646f0bf82ef9cdfb823a58388e1",
      "transactionId": "3550475ff95e472a8ec8f50bfb2a40f8d38e90e2f69cdf8ceb6d1d51cd1e1379",
      "payloadBytes": 0,
      "inputBudgetReport": [
        {
          "inputIndex": 0,
          "sigOpCount": 1,
          "computeBudget": null
        }
      ],
      "signedTransaction": "",
      "signerName": "",
      "signerVersion": "",
      "userAction": "not-yet-performed",
      "route": "json-wrpc",
      "notes": [
        "Fill signedTransaction only after an external signer returns the exact reviewed transaction.",
        "Do not change reviewFingerprint, payloadBytes, transactionId, sigOpCount, or computeBudget to make validation pass.",
        "After submit, accepted virtual-chain replay must match before app-state promotion."
      ]
    },
    {
      "id": "ureq-f5845e00-standard:external-signer-return",
      "status": "pending-external-signer",
      "requestId": "ureq-f5845e00-standard",
      "label": "Role-separated escrow refund",
      "recommendedFirstPass": false,
      "reviewFingerprint": "f942d584621067e78ab79bb6175a3f35e127e6d859fb4b7b26bc782eaa3485b5",
      "transactionId": "aed75c6b897e16bdeb9f835d3a4ce537158e6061aba14bddc4e63a448eec0b96",
      "payloadBytes": 0,
      "inputBudgetReport": [
        {
          "inputIndex": 0,
          "sigOpCount": 1,
          "computeBudget": null
        }
      ],
      "signedTransaction": "",
      "signerName": "",
      "signerVersion": "",
      "userAction": "not-yet-performed",
      "route": "json-wrpc",
      "notes": [
        "Fill signedTransaction only after an external signer returns the exact reviewed transaction.",
        "Do not change reviewFingerprint, payloadBytes, transactionId, sigOpCount, or computeBudget to make validation pass.",
        "After submit, accepted virtual-chain replay must match before app-state promotion."
      ]
    },
    {
      "id": "ureq-d12412d8-standard:external-signer-return",
      "status": "pending-external-signer",
      "requestId": "ureq-d12412d8-standard",
      "label": "Role-separated escrow cancel",
      "recommendedFirstPass": true,
      "reviewFingerprint": "3c94c9091718fe8ba5461322e554b9764cf032d6f0a80fb74536a7255fea8353",
      "transactionId": "fcddd9a9af9bb1167e28d8079f8bc6cd965f423f5d8af1c5a18911b24f12a89e",
      "payloadBytes": 0,
      "inputBudgetReport": [
        {
          "inputIndex": 0,
          "sigOpCount": null,
          "computeBudget": 30
        }
      ],
      "signedTransaction": "",
      "signerName": "",
      "signerVersion": "",
      "userAction": "not-yet-performed",
      "route": "json-wrpc",
      "notes": [
        "Fill signedTransaction only after an external signer returns the exact reviewed transaction.",
        "Do not change reviewFingerprint, payloadBytes, transactionId, sigOpCount, or computeBudget to make validation pass.",
        "After submit, accepted virtual-chain replay must match before app-state promotion."
      ]
    }
  ],
  "results": [
    {
      "id": "ureq-fcfdf1df-standard:external-signer-return",
      "status": "pending-external-signer",
      "requestId": "ureq-fcfdf1df-standard",
      "label": "DeFi v1 multi-wallet A receipt",
      "recommendedFirstPass": true,
      "reviewFingerprint": "03022c4021c69473bba1873e7141fb87d28d5bc80fad988b6bf8859f34980fc4",
      "transactionId": "ff7835059368b559db98e6625b0ffc82e1df2c37cb33f2fbe8abb6408d45ceaa",
      "payloadBytes": 154,
      "inputBudgetReport": [
        {
          "inputIndex": 0,
          "sigOpCount": 1,
          "computeBudget": null
        }
      ],
      "signedTransaction": "",
      "signerName": "",
      "signerVersion": "",
      "userAction": "not-yet-performed",
      "route": "payload-preserving-wrpc",
      "notes": [
        "Fill signedTransaction only after an external signer returns the exact reviewed transaction.",
        "Do not change reviewFingerprint, payloadBytes, transactionId, sigOpCount, or computeBudget to make validation pass.",
        "After submit, accepted virtual-chain replay must match before app-state promotion."
      ]
    },
    {
      "id": "ureq-fda320a9-standard:external-signer-return",
      "status": "pending-external-signer",
      "requestId": "ureq-fda320a9-standard",
      "label": "Role-separated escrow release",
      "recommendedFirstPass": false,
      "reviewFingerprint": "3f3594fede596a084d1b06b8aba37989e984a646f0bf82ef9cdfb823a58388e1",
      "transactionId": "3550475ff95e472a8ec8f50bfb2a40f8d38e90e2f69cdf8ceb6d1d51cd1e1379",
      "payloadBytes": 0,
      "inputBudgetReport": [
        {
          "inputIndex": 0,
          "sigOpCount": 1,
          "computeBudget": null
        }
      ],
      "signedTransaction": "",
      "signerName": "",
      "signerVersion": "",
      "userAction": "not-yet-performed",
      "route": "json-wrpc",
      "notes": [
        "Fill signedTransaction only after an external signer returns the exact reviewed transaction.",
        "Do not change reviewFingerprint, payloadBytes, transactionId, sigOpCount, or computeBudget to make validation pass.",
        "After submit, accepted virtual-chain replay must match before app-state promotion."
      ]
    },
    {
      "id": "ureq-f5845e00-standard:external-signer-return",
      "status": "pending-external-signer",
      "requestId": "ureq-f5845e00-standard",
      "label": "Role-separated escrow refund",
      "recommendedFirstPass": false,
      "reviewFingerprint": "f942d584621067e78ab79bb6175a3f35e127e6d859fb4b7b26bc782eaa3485b5",
      "transactionId": "aed75c6b897e16bdeb9f835d3a4ce537158e6061aba14bddc4e63a448eec0b96",
      "payloadBytes": 0,
      "inputBudgetReport": [
        {
          "inputIndex": 0,
          "sigOpCount": 1,
          "computeBudget": null
        }
      ],
      "signedTransaction": "",
      "signerName": "",
      "signerVersion": "",
      "userAction": "not-yet-performed",
      "route": "json-wrpc",
      "notes": [
        "Fill signedTransaction only after an external signer returns the exact reviewed transaction.",
        "Do not change reviewFingerprint, payloadBytes, transactionId, sigOpCount, or computeBudget to make validation pass.",
        "After submit, accepted virtual-chain replay must match before app-state promotion."
      ]
    },
    {
      "id": "ureq-d12412d8-standard:external-signer-return",
      "status": "pending-external-signer",
      "requestId": "ureq-d12412d8-standard",
      "label": "Role-separated escrow cancel",
      "recommendedFirstPass": true,
      "reviewFingerprint": "3c94c9091718fe8ba5461322e554b9764cf032d6f0a80fb74536a7255fea8353",
      "transactionId": "fcddd9a9af9bb1167e28d8079f8bc6cd965f423f5d8af1c5a18911b24f12a89e",
      "payloadBytes": 0,
      "inputBudgetReport": [
        {
          "inputIndex": 0,
          "sigOpCount": null,
          "computeBudget": 30
        }
      ],
      "signedTransaction": "",
      "signerName": "",
      "signerVersion": "",
      "userAction": "not-yet-performed",
      "route": "json-wrpc",
      "notes": [
        "Fill signedTransaction only after an external signer returns the exact reviewed transaction.",
        "Do not change reviewFingerprint, payloadBytes, transactionId, sigOpCount, or computeBudget to make validation pass.",
        "After submit, accepted virtual-chain replay must match before app-state promotion."
      ]
    }
  ],
  "requiredReturnFields": [
    "requestId",
    "reviewFingerprint",
    "transactionId",
    "payloadBytes",
    "inputBudgetReport",
    "signedTransaction",
    "signerName",
    "signerVersion",
    "userAction",
    "route"
  ],
  "validationCommand": "WALLET_STANDARD_SIGNER_RESULTS=artifacts/wallet-external-signer-result-template.json npm run wallet:standard-signer-validation",
  "boundaries": [
    "This is a current-field template for a future signer return, not a signer result.",
    "It intentionally leaves signedTransaction and signer metadata blank.",
    "It should be regenerated from the roundtrip plan when wallet request fingerprints change."
  ]
}
