{
  "spec": "FTO/v1",
  "kind": "wire",
  "note": "Raw-wire golden vectors: each tx is `{txid, height, pos, payload(hex), signers[hex8]}` — the OP_RETURN payload plus the chain context a full node/esplora gives an indexer. Decode (fto/src/wire.js) -> order by (height, pos, txid) -> canonicalize owner ids -> replay the asset rules; reproduce digest/root. `crossLang:false` cases need the F0 netlist codec and are checked by the JS reference only.",
  "params": {
    "AUTH_HEIGHT": 1577499,
    "ECON_HEIGHT": 1577517
  },
  "cases": [
    {
      "name": "wire-basic",
      "note": "pre-fork hold/mint/transfer straight from raw payloads; one over-balance transfer rejected",
      "txs": [
        {
          "txid": "1111111111111111111111111111111111111111111111111111111111111111",
          "height": 100,
          "pos": 0,
          "payload": "46312bf7f3c29d7240ef4996a826215c6f29640000000a00000001000457495245",
          "signers": []
        },
        {
          "txid": "2222222222222222222222222222222222222222222222222222222222222222",
          "height": 100,
          "pos": 1,
          "payload": "4d312bf7f3c29d7240ef4996a826215c6f2900640000001a2b3c4d5e6f7081",
          "signers": []
        },
        {
          "txid": "3333333333333333333333333333333333333333333333333333333333333333",
          "height": 100,
          "pos": 2,
          "payload": "4d312bf7f3c29d7240ef4996a826215c6f29010a0000001a2b3c4d5e6f7081",
          "signers": []
        },
        {
          "txid": "4444444444444444444444444444444444444444444444444444444444444444",
          "height": 100,
          "pos": 3,
          "payload": "54312bf7f3c29d7240ef4996a826215c6f2900050000001a2b3c4d5e6f70819182736455463728",
          "signers": []
        },
        {
          "txid": "5555555555555555555555555555555555555555555555555555555555555555",
          "height": 100,
          "pos": 4,
          "payload": "54312bf7f3c29d7240ef4996a826215c6f2901140000001a2b3c4d5e6f70819182736455463728",
          "signers": []
        }
      ],
      "expect": {
        "digest": "d10407c20efd7dca431ed8b0655efa2d80bd731534f6b47c17f17deedce92511",
        "root": "7ecd10b9a9f6b9b1b3c6719f3fa2151f6f60cbae99287249b124b998fd5e9c83",
        "events": 5,
        "errors": 1,
        "factories": 1,
        "balances": 3
      }
    },
    {
      "name": "wire-auth",
      "note": "AUTH_HEIGHT: a transfer signed by the debited owner is accepted, a forged one is rejected",
      "txs": [
        {
          "txid": "1111111111111111111111111111111111111111111111111111111111111111",
          "height": 1577499,
          "pos": 0,
          "payload": "4631e123d351f2da994e15cd04914911ec86640000000a0000000100054155544857",
          "signers": []
        },
        {
          "txid": "2222222222222222222222222222222222222222222222222222222222222222",
          "height": 1577499,
          "pos": 1,
          "payload": "4d31e123d351f2da994e15cd04914911ec8600640000001a2b3c4d5e6f7081",
          "signers": [
            "1a2b3c4d5e6f7081"
          ]
        },
        {
          "txid": "3333333333333333333333333333333333333333333333333333333333333333",
          "height": 1577499,
          "pos": 2,
          "payload": "5431e123d351f2da994e15cd04914911ec8600030000001a2b3c4d5e6f70819182736455463728",
          "signers": [
            "1a2b3c4d5e6f7081"
          ]
        },
        {
          "txid": "4444444444444444444444444444444444444444444444444444444444444444",
          "height": 1577499,
          "pos": 3,
          "payload": "5431e123d351f2da994e15cd04914911ec8600030000001a2b3c4d5e6f70819182736455463728",
          "signers": [
            "9182736455463728"
          ]
        }
      ],
      "expect": {
        "digest": "cf82311f53f979990977f2ba0b38191df5e2efdf50790a0098b59a545b7c7ec7",
        "root": "2b85c13238d1f1bb4c92555d1b6efced8aea28ca99bd4a206f3f6f344df4a02f",
        "events": 4,
        "errors": 1,
        "factories": 1,
        "balances": 2
      }
    },
    {
      "name": "wire-econ",
      "note": "ECON_HEIGHT: first mint claims the creator; a wrong signer is rejected; an unminted factory contributes no row",
      "txs": [
        {
          "txid": "1111111111111111111111111111111111111111111111111111111111111111",
          "height": 1577517,
          "pos": 0,
          "payload": "46314fd01a2f94124b1bce268286c6dcc228320000000500000002000545434f4e57",
          "signers": []
        },
        {
          "txid": "2222222222222222222222222222222222222222222222222222222222222222",
          "height": 1577517,
          "pos": 1,
          "payload": "4d314fd01a2f94124b1bce268286c6dcc228000a0000001a2b3c4d5e6f7081",
          "signers": [
            "1a2b3c4d5e6f7081"
          ]
        },
        {
          "txid": "3333333333333333333333333333333333333333333333333333333333333333",
          "height": 1577517,
          "pos": 2,
          "payload": "4d314fd01a2f94124b1bce268286c6dcc22800050000009182736455463728",
          "signers": [
            "9182736455463728"
          ]
        },
        {
          "txid": "4444444444444444444444444444444444444444444444444444444444444444",
          "height": 1577517,
          "pos": 3,
          "payload": "4d314fd01a2f94124b1bce268286c6dcc22800030000001a2b3c4d5e6f7081",
          "signers": [
            "1a2b3c4d5e6f7081"
          ]
        },
        {
          "txid": "5555555555555555555555555555555555555555555555555555555555555555",
          "height": 1577517,
          "pos": 4,
          "payload": "46312a927facd60fc54f43743728efab89020100000001000000010006454d50545957",
          "signers": []
        }
      ],
      "expect": {
        "digest": "edc5bfc681852441b21bde0763334cb427cde971d5f0dcd9a37199be4b7983d4",
        "root": "b2c384ac4eb24ecca7bd937e35d5148945e3fc8db56f05e10e5fd71cec8bcd50",
        "events": 5,
        "errors": 1,
        "factories": 2,
        "balances": 1
      }
    },
    {
      "name": "wire-order",
      "note": "intra-block pos is authoritative: the mint's txid sorts last, the transfer's first — txid order would reject the transfer",
      "txs": [
        {
          "txid": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "height": 250,
          "pos": 0,
          "payload": "463103d5eab3bed99509da9781bed3f82c3464000000010000000100064f5244455257",
          "signers": []
        },
        {
          "txid": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
          "height": 250,
          "pos": 1,
          "payload": "4d3103d5eab3bed99509da9781bed3f82c34000a0000001a2b3c4d5e6f7081",
          "signers": []
        },
        {
          "txid": "0000000000000000000000000000000000000000000000000000000000000000",
          "height": 250,
          "pos": 2,
          "payload": "543103d5eab3bed99509da9781bed3f82c3400040000001a2b3c4d5e6f70819182736455463728",
          "signers": []
        }
      ],
      "expect": {
        "digest": "d35628a54a0cf92bde45f6b047c760dc5ff2f3933f714807468fb8dd59a09e02",
        "root": "dd7e372a33b9f3a0fe2194247821684e822dbe4781cd3501f65011e09e1c06c4",
        "events": 3,
        "errors": 0,
        "factories": 1,
        "balances": 2
      }
    },
    {
      "name": "wire-ignore",
      "note": "a bad version byte, an unknown type, and a stateRoot anchor are skipped; the asset digest is unaffected",
      "txs": [
        {
          "txid": "1111111111111111111111111111111111111111111111111111111111111111",
          "height": 300,
          "pos": 0,
          "payload": "4631e04e40bc391d5b920750f7bc917677970a0000000100000001000449474e57",
          "signers": []
        },
        {
          "txid": "2222222222222222222222222222222222222222222222222222222222222222",
          "height": 300,
          "pos": 1,
          "payload": "4d31e04e40bc391d5b920750f7bc9176779700040000001a2b3c4d5e6f7081",
          "signers": []
        },
        {
          "txid": "3333333333333333333333333333333333333333333333333333333333333333",
          "height": 300,
          "pos": 2,
          "payload": "6a99deadbeef",
          "signers": []
        },
        {
          "txid": "4444444444444444444444444444444444444444444444444444444444444444",
          "height": 300,
          "pos": 3,
          "payload": "993100000000",
          "signers": []
        },
        {
          "txid": "5555555555555555555555555555555555555555555555555555555555555555",
          "height": 300,
          "pos": 4,
          "payload": "5231abababababababababababababababababababababababababababababababab2c01000002000000abababababababababababababababababababababababababababababababab",
          "signers": []
        }
      ],
      "expect": {
        "digest": "f4093416a107cc0741fdc63de43535ff379a6afa56e0cde12fbd96cf8a0cb77e",
        "root": "997698f248416da6fa5bc22feaa16694134340dc589890704ce8939a42ce6a0f",
        "events": 2,
        "errors": 0,
        "factories": 1,
        "balances": 1
      }
    },
    {
      "name": "wire-legacy",
      "note": "a legacy string-hashed owner id is remapped to its canonical id before the rules run",
      "txs": [
        {
          "txid": "1111111111111111111111111111111111111111111111111111111111111111",
          "height": 400,
          "pos": 0,
          "payload": "4631ef9fe7d7f77ec35929e6ae9f77e01c890a000000010000000100074c454741435957",
          "signers": []
        },
        {
          "txid": "2222222222222222222222222222222222222222222222222222222222222222",
          "height": 400,
          "pos": 1,
          "payload": "4d31ef9fe7d7f77ec35929e6ae9f77e01c89000a0000001c9b82caeb3035e0",
          "signers": []
        },
        {
          "txid": "3333333333333333333333333333333333333333333333333333333333333333",
          "height": 400,
          "pos": 2,
          "payload": "5431ef9fe7d7f77ec35929e6ae9f77e01c8900040000001c9b82caeb3035e09182736455463728",
          "signers": []
        }
      ],
      "expect": {
        "digest": "3e5b236a1d126a1d4b57b0693983b06e6754108595bbbf0e8e2d8323d6709cca",
        "root": "05ab0639ec80bdf69fd9a578a01e120b5b38d3d6d30ddb11b88f897152880063",
        "events": 3,
        "errors": 0,
        "factories": 1,
        "balances": 2
      }
    },
    {
      "crossLang": false,
      "name": "wire-tapeout",
      "note": "inline netlist + tape-out payloads: the burn is debited from the owner (F0 metrics; JS reference only)",
      "txs": [
        {
          "txid": "1111111111111111111111111111111111111111111111111111111111111111",
          "height": 500,
          "pos": 0,
          "payload": "4631169c3cd7f109919743fb66bf5c01f077640000000a0000000100055441504557",
          "signers": []
        },
        {
          "txid": "2222222222222222222222222222222222222222222222222222222222222222",
          "height": 500,
          "pos": 1,
          "payload": "4d31169c3cd7f109919743fb66bf5c01f07700640000001a2b3c4d5e6f7081",
          "signers": []
        },
        {
          "txid": "3333333333333333333333333333333333333333333333333333333333333333",
          "height": 500,
          "pos": 2,
          "payload": "4e3146544f4e0100020001000000040000000001000000000200000100020000030004000500",
          "signers": []
        },
        {
          "txid": "4444444444444444444444444444444444444444444444444444444444444444",
          "height": 500,
          "pos": 3,
          "payload": "5831169c3cd7f109919743fb66bf5c01f0775c10118bae735b57a303ce3999c59592000000000000000000000000000000001a2b3c4d5e6f7081",
          "signers": []
        }
      ],
      "expect": {
        "digest": "94c9daad16460bbbdf11104296bc0a2eec1ab732f5a1918e23603d97df59f2ab",
        "root": "d28a372f6b4418ba65edd98c97c414788b3ae372a8442f2f55b608d3fe9eb758",
        "events": 4,
        "errors": 0,
        "factories": 1,
        "balances": 2
      }
    }
  ]
}
