{
  "spec": "FTO/v1",
  "note": "Golden vectors for fto/SPEC.md. `events` are logical events (already decoded); `expect.digest` is sha256 of the canonical state rows and `expect.root` is the VCP Merkle root of those rows. Verified by fto/tools/spec_vectors_check.mjs across the JS, Python and C# reference indexers.",
  "params": {
    "AUTH_HEIGHT": 1577499,
    "ECON_HEIGHT": 1577517
  },
  "cases": [
    {
      "name": "asset-basic",
      "note": "pre-fork hold/mint/transfer (no height); one over-balance transfer is rejected",
      "events": [
        {
          "type": "factory",
          "symbol": "BASIC",
          "supplyNAND": 100,
          "supplyLATCH": 10,
          "multiplier": 1
        },
        {
          "type": "mint",
          "factoryId": "411f7b5d285d7330d1fbe5daa0b861bc",
          "kind": "NAND",
          "amount": 100,
          "owner": "owner:1c9b82caeb3035e0"
        },
        {
          "type": "mint",
          "factoryId": "411f7b5d285d7330d1fbe5daa0b861bc",
          "kind": "LATCH",
          "amount": 10,
          "owner": "owner:1c9b82caeb3035e0"
        },
        {
          "type": "transfer",
          "factoryId": "411f7b5d285d7330d1fbe5daa0b861bc",
          "kind": "NAND",
          "amount": 5,
          "from": "owner:1c9b82caeb3035e0",
          "to": "owner:33f1946542d0127f"
        },
        {
          "type": "transfer",
          "factoryId": "411f7b5d285d7330d1fbe5daa0b861bc",
          "kind": "LATCH",
          "amount": 20,
          "from": "owner:1c9b82caeb3035e0",
          "to": "owner:33f1946542d0127f"
        }
      ],
      "expect": {
        "digest": "7adb692fcc8b1b627be4df7f5ae44825b225634469df45a479cf981808e4cbd6",
        "root": "d50d30f9f81f76ea28063fdb9c8b644f323149f5c0e70cc889cd5110c4862dac",
        "events": 5,
        "errors": 1,
        "factories": 1,
        "balances": 3
      }
    },
    {
      "name": "forks-g4-g9",
      "note": "G4 authorization binding (AUTH_HEIGHT) + G9 creator binding & active rule (ECON_HEIGHT)",
      "events": [
        {
          "type": "factory",
          "symbol": "FORK",
          "supplyNAND": 100,
          "supplyLATCH": 10,
          "multiplier": 1,
          "height": 1577498
        },
        {
          "type": "mint",
          "factoryId": "e06fac93106fa1ae8d057a14cc09709f",
          "kind": "NAND",
          "amount": 100,
          "owner": "owner:1c9b82caeb3035e0",
          "height": 1577498
        },
        {
          "type": "transfer",
          "factoryId": "e06fac93106fa1ae8d057a14cc09709f",
          "kind": "NAND",
          "amount": 5,
          "from": "owner:1c9b82caeb3035e0",
          "to": "owner:33f1946542d0127f",
          "height": 1577499,
          "signers": [
            "1c9b82caeb3035e0"
          ]
        },
        {
          "type": "transfer",
          "factoryId": "e06fac93106fa1ae8d057a14cc09709f",
          "kind": "NAND",
          "amount": 5,
          "from": "owner:1c9b82caeb3035e0",
          "to": "owner:33f1946542d0127f",
          "height": 1577499,
          "signers": [
            "33f1946542d0127f"
          ]
        },
        {
          "type": "factory",
          "symbol": "ECONV",
          "supplyNAND": 50,
          "supplyLATCH": 5,
          "multiplier": 2,
          "height": 1577517
        },
        {
          "type": "mint",
          "factoryId": "445d5b63584caa1f3c899205a0275fde",
          "kind": "NAND",
          "amount": 10,
          "owner": "owner:1c9b82caeb3035e0",
          "height": 1577517,
          "signers": [
            "1c9b82caeb3035e0"
          ]
        },
        {
          "type": "mint",
          "factoryId": "445d5b63584caa1f3c899205a0275fde",
          "kind": "NAND",
          "amount": 5,
          "owner": "owner:33f1946542d0127f",
          "height": 1577517,
          "signers": [
            "33f1946542d0127f"
          ]
        },
        {
          "type": "factory",
          "symbol": "EMPTY",
          "supplyNAND": 1,
          "supplyLATCH": 1,
          "multiplier": 1,
          "height": 1577517
        }
      ],
      "expect": {
        "digest": "dd00c131e600b582ed380a05a725a54d3011cdd1751bbcc083358482b9c3f5ce",
        "root": "02c710ce693b27bb6a7e92d7714cd33066b8d337ff7e52374dd6ce739e5c9a52",
        "events": 8,
        "errors": 2,
        "factories": 3,
        "balances": 3
      }
    },
    {
      "name": "empty",
      "note": "empty log: the fixed, domain-separated empty state digest and root",
      "events": [],
      "expect": {
        "digest": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
        "root": "5c30ed084dbbc2524f1988fb1c60b41676021128013b23210c3a955f34a94a07",
        "events": 0,
        "errors": 0,
        "factories": 0,
        "balances": 0
      }
    }
  ]
}
