{
  "runId": "20261007T130259Z",
  "environment": "devnet",
  "authMode": "password",
  "partyMode": "external-provisioned",
  "credentialSeparation": "NOT_TESTED_SINGLE_CREDENTIAL",
  "seatCredential": "shared-login",
  "custody": "EACH_PARTY_SIGNS_WITH_ITS_OWN_KEY",
  "externalParties": [
    {
      "role": "admin",
      "fingerprint": "1220ffac9ade50ba75442beafca1270c6b36500aa97274835ce86d34cf5ca532f978"
    },
    {
      "role": "lpA",
      "fingerprint": "122055ba77050bb51c493c707a02edcb2629a655a8befecb412e52abab343cad8b7e"
    },
    {
      "role": "lpB",
      "fingerprint": "1220b86d2dd1c34dd670dee462fe01d48e29da013d2165a4584637f880a19b14303e"
    },
    {
      "role": "lpC",
      "fingerprint": "1220188dda544f557344cf53a00dccea5d90baac01bc6e049253c652b1a047c119d3"
    },
    {
      "role": "outsider",
      "fingerprint": "1220341b06d844cf2dea91726f2f554540409ce3cbf872e2ed5f8771b63900ea463f"
    }
  ],
  "reasonsHidden": [],
  "skipped": [
    {
      "id": "credential: lpA token cannot read as lpB",
      "reason": "one shared login acts for every party on this node, so LP credentials cannot be separated here"
    },
    {
      "id": "credential: verifier token cannot submit as admin",
      "reason": "the verifier reads as one of the seats' ledger users"
    }
  ],
  "canton": "3.5.19",
  "commit": "0a2238be44ad24e2b080c0533c05c9f4a241fb3f",
  "uncommittedFiles": 1,
  "packageId": "733ba37d82f44d827f37b0f9d9bb64f2b7bc784bce951a70f87320aa3f50d534",
  "darSha256": "382dcba523552e24aaaabd30a6205b7936317c7671e134712d9ac82182bf19b4",
  "instrument": {
    "admin": "DSO::1220be58c29e65de40bf273be1dc2b266d43a9a002ea5b18955aeef7aac881bb471a",
    "id": "Amulet"
  },
  "parties": {
    "admin": "b94ab230-ext-1::1220ffac9ade50ba75442beafca1270c6b36500aa97274835ce86d34cf5ca532f978",
    "lpA": "b94ab230-ext-2::122055ba77050bb51c493c707a02edcb2629a655a8befecb412e52abab343cad8b7e",
    "lpB": "b94ab230-ext-3::1220b86d2dd1c34dd670dee462fe01d48e29da013d2165a4584637f880a19b14303e",
    "lpC": "b94ab230-ext-4::1220188dda544f557344cf53a00dccea5d90baac01bc6e049253c652b1a047c119d3",
    "outsider": "b94ab230-ext-5::1220341b06d844cf2dea91726f2f554540409ce3cbf872e2ed5f8771b63900ea463f"
  },
  "fundId": "FUND-20261007t130259z",
  "users": {
    "admin": "b94ab230-e690-46b2-9288-133b30609cb9",
    "lpA": "b94ab230-e690-46b2-9288-133b30609cb9",
    "lpB": "b94ab230-e690-46b2-9288-133b30609cb9",
    "lpC": "b94ab230-e690-46b2-9288-133b30609cb9",
    "outsider": "b94ab230-e690-46b2-9288-133b30609cb9",
    "verifier": "b94ab230-e690-46b2-9288-133b30609cb9"
  },
  "participants": {
    "admin": "admin participant",
    "lpA": "admin participant",
    "lpB": "admin participant",
    "lpC": "admin participant",
    "outsider": "admin participant"
  },
  "verifierUser": "b94ab230-e690-46b2-9288-133b30609cb9",
  "gates": {
    "DEVNET_E2E": "PASS",
    "PRIVACY_CAMPAIGN": "PASS",
    "CUSTODY": "PASS"
  },
  "passed": 83,
  "failed": [],
  "checks": [
    {
      "id": "custody: server cannot act for lpA without lpA's key",
      "ok": true,
      "detail": {
        "rejected": "/v2/commands/submit-and-wait-for-transaction -> HTTP 404: {\"code\":\"NO_SYNCHRONIZER_ON_WHICH_ALL_SUBMITTERS_CAN_SUBMIT\",\"cause\":\"This participant cannot submit as the given submitter on any connected synchronizer\",\"correlationId\":null,\"traceId\":\"91d92294c15ede25044cff5a3483e1b4\",\"context\":{\"participant\":\"participant\",\"unknownSubmitter\":\"b94ab230-ext-2::122055ba77050bb51c493c707a02edcb2629a655a8befecb412e52abab343cad8b7e\",\"category\":\"11\",\"tid\":\"91d92294c15ede25044cff5a3483e1b4\",\"definite_answer\":\"false\"},\"resources\":[],\"errorCategory\":11,\"grpcCodeValue\":5,\"retryInfo\":null,\"definiteAnswer\":null}"
      }
    },
    {
      "id": "custody: lpB's key cannot sign for lpA",
      "ok": true,
      "detail": {
        "rejected": "/v2/interactive-submission/executeAndWaitForTransaction -> HTTP 400: {\"code\":\"FAILED_TO_EXECUTE_TRANSACTION\",\"cause\":\"The participant failed to execute the transaction: Received 0 valid signatures from distinct keys (1 invalid), but expected at least 1 valid for b94ab230-ext-2::122055ba7705.... Transaction hash to be signed: 1220e1539d9348f56c5ba492c361ae2f17bdbff818da1f678800d4e60db132f31a15. Ensure the correct transaction hash is signed with the correct key(s).\",\"correlationId\":null,\"traceId\":\"6eb3b84e59726706c22453afc489e0f6\",\"context\":{\"participant\":\"participant\",\"definite_answer\":\"false\","
      }
    },
    {
      "id": "deadline: overdue refused before due time",
      "ok": true,
      "detail": {
        "rejected": "/v2/interactive-submission/prepare -> HTTP 400: {\"code\":\"DAML_FAILURE\",\"cause\":\"Interpretation error: Error: User failure: UNHANDLED_EXCEPTION/DA.Exception.AssertionFailed:AssertionFailed (error category 9): obligation is not yet due\",\"correlationId\":null,\"traceId\":\"446539f93a47a913577e0d60985f0479\",\"context\":{\"participant\":\"'participant'\",\"error_id\":\"UNHANDLED_EXCEPTION/DA.Exception.AssertionFailed:AssertionFailed\",\"exercise_trace\":\"    in choice 733ba37d:Draw.CapitalCall:CapitalCallObligation:Obligation_MarkOverdue on contract 007338649c (#0)\\n    in exercise command 733ba37d:Draw.CapitalCal"
      }
    },
    {
      "id": "privacy[after-issue]: admin sees no DRAW or allocation contract it is not party to, from any run",
      "ok": true,
      "detail": []
    },
    {
      "id": "privacy[after-issue]: lpA sees no DRAW or allocation contract it is not party to, from any run",
      "ok": true,
      "detail": []
    },
    {
      "id": "privacy[after-issue]: lpB sees no DRAW or allocation contract it is not party to, from any run",
      "ok": true,
      "detail": []
    },
    {
      "id": "privacy[after-issue]: lpC sees no DRAW or allocation contract it is not party to, from any run",
      "ok": true,
      "detail": []
    },
    {
      "id": "privacy[after-issue]: outsider sees no DRAW or allocation contract it is not party to, from any run",
      "ok": true,
      "detail": []
    },
    {
      "id": "privacy[after-issue]: admin sees all three obligations",
      "ok": true,
      "detail": [
        "obligation:lpA",
        "obligation:lpB",
        "obligation:lpC"
      ]
    },
    {
      "id": "privacy[after-issue]: lpA sees only its own obligation",
      "ok": true,
      "detail": [
        "obligation:lpA"
      ]
    },
    {
      "id": "privacy[after-issue]: lpA sees only its own commitment",
      "ok": true,
      "detail": [
        "commitment:lpA"
      ]
    },
    {
      "id": "privacy[after-issue]: lpA sees no Fund or CapitalCall",
      "ok": true
    },
    {
      "id": "privacy[after-issue]: lpA sees no other LP's allocation",
      "ok": true,
      "detail": []
    },
    {
      "id": "privacy[after-issue]: lpB sees only its own obligation",
      "ok": true,
      "detail": [
        "obligation:lpB"
      ]
    },
    {
      "id": "privacy[after-issue]: lpB sees only its own commitment",
      "ok": true,
      "detail": [
        "commitment:lpB"
      ]
    },
    {
      "id": "privacy[after-issue]: lpB sees no Fund or CapitalCall",
      "ok": true
    },
    {
      "id": "privacy[after-issue]: lpB sees no other LP's allocation",
      "ok": true,
      "detail": []
    },
    {
      "id": "privacy[after-issue]: lpC sees only its own obligation",
      "ok": true,
      "detail": [
        "obligation:lpC"
      ]
    },
    {
      "id": "privacy[after-issue]: lpC sees only its own commitment",
      "ok": true,
      "detail": [
        "commitment:lpC"
      ]
    },
    {
      "id": "privacy[after-issue]: lpC sees no Fund or CapitalCall",
      "ok": true
    },
    {
      "id": "privacy[after-issue]: lpC sees no other LP's allocation",
      "ok": true,
      "detail": []
    },
    {
      "id": "privacy[after-issue]: outsider sees nothing",
      "ok": true,
      "detail": {
        "Fund": [],
        "CommitmentInvitation": [],
        "InvestorCommitment": [],
        "CapitalCall": [],
        "CapitalCallObligation": [],
        "PaymentRequest": [],
        "Allocation": []
      }
    },
    {
      "id": "wallet: lpA sees exactly its own payment request",
      "ok": true,
      "detail": [
        "DRAW-f85667ed46f10411"
      ]
    },
    {
      "id": "wallet: lpB sees exactly its own payment request",
      "ok": true,
      "detail": [
        "DRAW-13979f83a74ff723"
      ]
    },
    {
      "id": "wallet: lpC sees exactly its own payment request",
      "ok": true,
      "detail": [
        "DRAW-3551101601d28f7f"
      ]
    },
    {
      "id": "wallet: outsider sees no payment request",
      "ok": true
    },
    {
      "id": "wallet: lpA reads its call as a CIP-0056 AllocationRequest with the exact settlement and leg",
      "ok": true,
      "detail": {
        "settlement": {
          "executor": "b94ab230-ext-1::1220ffac9ade50ba75442beafca1270c6b36500aa97274835ce86d34cf5ca532f978",
          "settlementRef": {
            "id": "DRAW-f85667ed46f10411"
          },
          "requestedAt": "2026-10-07T13:04:00.583517Z",
          "allocateBefore": "2026-10-07T13:05:30.153Z",
          "settleBefore": "2026-10-14T13:05:30.153Z",
          "meta": {
            "values": {}
          }
        },
        "transferLegs": {
          "DRAW-f85667ed46f10411": {
            "sender": "b94ab230-ext-2::122055ba77050bb51c493c707a02edcb2629a655a8befecb412e52abab343cad8b7e",
            "receiver": "b94ab230-ext-1::1220ffac9ade50ba75442beafca1270c6b36500aa97274835ce86d34cf5ca532f978",
            "amount": "40.0000000000",
            "instrumentId": {
              "admin": "DSO::1220be58c29e65de40bf273be1dc2b266d43a9a002ea5b18955aeef7aac881bb471a",
              "id": "Amulet"
            },
            "meta": {
              "values": {}
            }
          }
        },
        "meta": {
          "values": {
            "splice.lfdecentralizedtrust.org/reason": "Capital call CALL-1, Example Ventures I (demo)"
          }
        }
      }
    },
    {
      "id": "privacy: lpA cannot fetch lpB obligation by contract id",
      "ok": true,
      "detail": {
        "rejected": "/v2/events/events-by-contract-id -> HTTP 404: {\"code\":\"CONTRACT_EVENTS_NOT_FOUND\",\"cause\":\"Contract events not found, or not visible.\",\"correlationId\":null,\"traceId\":\"b2f60ab32ed283034541887cab2a7efb\",\"context\":{\"participant\":\"'participant'\",\"definite_answer\":\"false\",\"tid\":\"b2f60ab32ed283034541887cab2a7efb\",\"category\":\"11\"},\"resources\":[[\"ErrorResource(CONTRACT_ID)\",\"00bce94b593647cf7f89ea569cd164f58cf76241f4176c75f063a386a19f521847ca121220963be04068912408be735cdbf935258cf9164e0c98d651fb255a13ca5bf8983a\"]],\"errorCategory\":11,\"grpcCodeValue\":5,\"retryInfo\":null,\"definiteAnswer\":null}"
      }
    },
    {
      "id": "authority: lpA cannot exercise on lpB obligation",
      "ok": true,
      "detail": {
        "rejected": "/v2/interactive-submission/prepare -> HTTP 404: {\"code\":\"CONTRACT_NOT_FOUND\",\"cause\":\"Contract could not be found with id 00bce94b593647cf7f89ea569cd164f58cf76241f4176c75f063a386a19f521847ca121220963be04068912408be735cdbf935258cf9164e0c98d651fb255a13ca5bf8983a\",\"correlationId\":null,\"traceId\":\"0095f1d7a7e4c8878df1013bf37c91cd\",\"context\":{\"participant\":\"'participant'\",\"category\":\"11\",\"tid\":\"0095f1d7a7e4c8878df1013bf37c91cd\",\"definite_answer\":\"false\",\"commands\":\"{readAs: [], deduplicationPeriod: {duration: 'PT0S'}, submittedAt: '2026-10-07T13:04:22.789973Z', submissionId: , actAs: ['b94ab230-ext-"
      }
    },
    {
      "id": "authority: lpA cannot change its own obligation state",
      "ok": true,
      "detail": {
        "rejected": "/v2/interactive-submission/prepare -> HTTP 400: {\"code\":\"DAML_AUTHORIZATION_ERROR\",\"cause\":\"Interpretation error: Error: node NodeId(0) (733ba37d82f44d827f37b0f9d9bb64f2b7bc784bce951a70f87320aa3f50d534:Draw.CapitalCall:CapitalCallObligation) requires authorizers b94ab230-ext-1::1220ffac9ade50ba75442beafca1270c6b36500aa97274835ce86d34cf5ca532f978, but only b94ab230-ext-2::122055ba77050bb51c493c707a02edcb2629a655a8befecb412e52abab343cad8b7e were given\",\"correlationId\":null,\"traceId\":\"7e2b5dcef5abebd7e703cf7e530c6039\",\"context\":{\"participant\":\"'participant'\",\"category\":\"8\",\"tid\":\"7e2b5dcef5abebd7"
      }
    },
    {
      "id": "settlement[lpA]: admin observes allocation in its own ACS",
      "ok": true,
      "detail": {
        "id": "DRAW-f85667ed46f10411"
      }
    },
    {
      "id": "settlement[lpA]: obligation is PaymentPending, not Funded, before execution",
      "ok": true,
      "detail": {
        "state": "PaymentPending",
        "updateId": "1220cf60128d089d2c14f13685c32aa31b76b4f87ee80b059c33942529fcf639a6a2"
      }
    },
    {
      "id": "settlement[lpA]: read-back verifier returns VERIFIED_FUNDED",
      "ok": true,
      "detail": []
    },
    {
      "id": "settlement[lpA]: the read-back ran as the verifier's own ledger user",
      "ok": true,
      "detail": {
        "recorded": "b94ab230-e690-46b2-9288-133b30609cb9",
        "expected": "b94ab230-e690-46b2-9288-133b30609cb9"
      }
    },
    {
      "id": "wallet: lpA's payment request closes when the call is settled",
      "ok": true
    },
    {
      "id": "settlement[lpA]: LP sees its own obligation as Funded",
      "ok": true,
      "detail": "Funded"
    },
    {
      "id": "negative: wrong amount does not fund",
      "ok": true,
      "detail": {
        "rejected": "/v2/interactive-submission/prepare -> HTTP 400: {\"code\":\"DAML_FAILURE\",\"cause\":\"Interpretation error: Error: User failure: UNHANDLED_EXCEPTION/DA.Exception.AssertionFailed:AssertionFailed (error category 9): allocation amount does not equal amount due\",\"correlationId\":null,\"traceId\":\"79e61997edaef0bb6dc49277d7395bc8\",\"context\":{\"participant\":\"'participant'\",\"error_id\":\"UNHANDLED_EXCEPTION/DA.Exception.AssertionFailed:AssertionFailed\",\"exercise_trace\":\"    in choice 733ba37d:Draw.CapitalCall:CapitalCallObligation:Obligation_Settle on contract 00bce94b59 (#0)\\n    in exercise command 733ba37d:Dr"
      }
    },
    {
      "id": "negative: wrong payer does not fund",
      "ok": true,
      "detail": {
        "rejected": "/v2/interactive-submission/prepare -> HTTP 400: {\"code\":\"DAML_FAILURE\",\"cause\":\"Interpretation error: Error: User failure: UNHANDLED_EXCEPTION/DA.Exception.AssertionFailed:AssertionFailed (error category 9): allocation sender is not the obligated LP\",\"correlationId\":null,\"traceId\":\"6aabed63e011a92cbf263fc3c7d05f3b\",\"context\":{\"participant\":\"'participant'\",\"error_id\":\"UNHANDLED_EXCEPTION/DA.Exception.AssertionFailed:AssertionFailed\",\"exercise_trace\":\"    in choice 733ba37d:Draw.CapitalCall:CapitalCallObligation:Obligation_Settle on contract 00bce94b59 (#0)\\n    in exercise command 733ba37d:Draw"
      }
    },
    {
      "id": "negative: wrong reference does not fund",
      "ok": true,
      "detail": {
        "rejected": "/v2/interactive-submission/prepare -> HTTP 400: {\"code\":\"DAML_FAILURE\",\"cause\":\"Interpretation error: Error: User failure: UNHANDLED_EXCEPTION/DA.Exception.AssertionFailed:AssertionFailed (error category 9): allocation settlement reference does not match obligation\",\"correlationId\":null,\"traceId\":\"aa60d32ecf59576080be8b418c711b0c\",\"context\":{\"participant\":\"'participant'\",\"error_id\":\"UNHANDLED_EXCEPTION/DA.Exception.AssertionFailed:AssertionFailed\",\"exercise_trace\":\"    in choice 733ba37d:Draw.CapitalCall:CapitalCallObligation:Obligation_Settle on contract 00bce94b59 (#0)\\n    in exercise comma"
      }
    },
    {
      "id": "negative: replayed allocation from lpA does not fund lpB",
      "ok": true,
      "detail": {
        "rejected": "/v2/interactive-submission/prepare -> HTTP 404: {\"code\":\"CONTRACT_NOT_FOUND\",\"cause\":\"Contract could not be found with id 004660e79b1489e4aef54faa48b1d132d01e9dc5d26eaa2109972efbd1bb02e582ca121220f6c07275ce591cc905c900b250081bc482cd13a032403de3ed397faa5d414038\",\"correlationId\":null,\"traceId\":\"19d47dd8294a609280644d320789554f\",\"context\":{\"participant\":\"'participant'\",\"category\":\"11\",\"tid\":\"19d47dd8294a609280644d320789554f\",\"definite_answer\":\"false\",\"commands\":\"{readAs: [], deduplicationPeriod: {duration: 'PT0S'}, submittedAt: '2026-10-07T13:05:13.033194Z', submissionId: , actAs: ['b94ab230-ext-"
      }
    },
    {
      "id": "negative: replayed allocation does not fund lpA twice",
      "ok": true,
      "detail": {
        "rejected": "/v2/interactive-submission/prepare -> HTTP 400: {\"code\":\"DAML_FAILURE\",\"cause\":\"Interpretation error: Error: User failure: UNHANDLED_EXCEPTION/DA.Exception.AssertionFailed:AssertionFailed (error category 9): obligation is not open for settlement\",\"correlationId\":null,\"traceId\":\"ad2b9a7ed8070f65c7eac5827db5cc85\",\"context\":{\"participant\":\"'participant'\",\"error_id\":\"UNHANDLED_EXCEPTION/DA.Exception.AssertionFailed:AssertionFailed\",\"exercise_trace\":\"    in choice 733ba37d:Draw.CapitalCall:CapitalCallObligation:Obligation_Settle on contract 0051622373 (#0)\\n    in exercise command 733ba37d:Draw.Cap"
      }
    },
    {
      "id": "negative: verifier rejects lpA settlement evidence offered for lpB",
      "ok": true,
      "detail": [
        "update id not already used as evidence",
        "update creates the funded obligation for this reference",
        "current admin ACS obligation is the funded one",
        "payer is the obligated LP"
      ]
    },
    {
      "id": "negative: lpB still unfunded after every bad attempt",
      "ok": true,
      "detail": "Issued"
    },
    {
      "id": "negative: rejected allocations withdrawn, none left for admin to execute",
      "ok": true,
      "detail": []
    },
    {
      "id": "settlement[lpB]: admin observes allocation in its own ACS",
      "ok": true,
      "detail": {
        "id": "DRAW-13979f83a74ff723"
      }
    },
    {
      "id": "settlement[lpB]: obligation is PaymentPending, not Funded, before execution",
      "ok": true,
      "detail": {
        "state": "PaymentPending",
        "updateId": "1220f1c6373f239a0b45d43adb9a06982ccfc130456a226e1eaff0c2cd8d84dd4d73"
      }
    },
    {
      "id": "settlement[lpB]: read-back verifier returns VERIFIED_FUNDED",
      "ok": true,
      "detail": []
    },
    {
      "id": "settlement[lpB]: the read-back ran as the verifier's own ledger user",
      "ok": true,
      "detail": {
        "recorded": "b94ab230-e690-46b2-9288-133b30609cb9",
        "expected": "b94ab230-e690-46b2-9288-133b30609cb9"
      }
    },
    {
      "id": "wallet: lpB's payment request closes when the call is settled",
      "ok": true
    },
    {
      "id": "settlement[lpB]: LP sees its own obligation as Funded",
      "ok": true,
      "detail": "Funded"
    },
    {
      "id": "unpaid: lpC obligation is Overdue after the due time, not Funded",
      "ok": true,
      "detail": {
        "state": "Overdue",
        "updateId": "1220b4606cca2359598f3bdbe3d6cdf6fc6fc92c1dd2f8fba4b85c468882a1c924a3"
      }
    },
    {
      "id": "totals: funded is 750,000 USD scenario",
      "ok": true,
      "detail": 750000
    },
    {
      "id": "totals: unresolved is 250,000 USD scenario",
      "ok": true,
      "detail": 250000
    },
    {
      "id": "totals: funded + unresolved equals the call total",
      "ok": true
    },
    {
      "id": "totals: funded units equal verified receipt units",
      "ok": true,
      "detail": {
        "fundedScenarioUsd": 750000,
        "unresolvedScenarioUsd": 250000,
        "callTotalScenarioUsd": 1000000,
        "fundedUnits": 75,
        "adminAmuletReceived": 75,
        "verifiedReceiptUnits": 75,
        "byObligation": [
          {
            "lp": "lpA",
            "state": "Funded",
            "evidence": "VERIFIED_FUNDED",
            "scenarioUsd": 400000,
            "units": 40
          },
          {
            "lp": "lpB",
            "state": "Funded",
            "evidence": "VERIFIED_FUNDED",
            "scenarioUsd": 350000,
            "units": 35
          },
          {
            "lp": "lpC",
            "state": "Overdue",
            "evidence": "NONE",
            "scenarioUsd": 250000,
            "units": 25
          }
        ],
        "balancesBefore": {
          "admin": 40,
          "lpA": 160,
          "lpB": 200,
          "lpC": 200
        },
        "balancesAfter": {
          "admin": 115,
          "lpA": 120,
          "lpB": 165,
          "lpC": 200
        }
      }
    },
    {
      "id": "totals: lpA unlocked balance fell by exactly what it settled (40)",
      "ok": true,
      "detail": {
        "delta": 40,
        "paid": 40
      }
    },
    {
      "id": "totals: lpB unlocked balance fell by exactly what it settled (35)",
      "ok": true,
      "detail": {
        "delta": 35,
        "paid": 35
      }
    },
    {
      "id": "totals: lpC unlocked balance fell by exactly what it settled (0)",
      "ok": true,
      "detail": {
        "delta": 0,
        "paid": 0
      }
    },
    {
      "id": "totals: admin Amulet balance grew by exactly the funded units",
      "ok": true,
      "detail": {
        "received": 75,
        "funded": 75
      }
    },
    {
      "id": "privacy[final]: admin sees no DRAW or allocation contract it is not party to, from any run",
      "ok": true,
      "detail": []
    },
    {
      "id": "privacy[final]: lpA sees no DRAW or allocation contract it is not party to, from any run",
      "ok": true,
      "detail": []
    },
    {
      "id": "privacy[final]: lpB sees no DRAW or allocation contract it is not party to, from any run",
      "ok": true,
      "detail": []
    },
    {
      "id": "privacy[final]: lpC sees no DRAW or allocation contract it is not party to, from any run",
      "ok": true,
      "detail": []
    },
    {
      "id": "privacy[final]: outsider sees no DRAW or allocation contract it is not party to, from any run",
      "ok": true,
      "detail": []
    },
    {
      "id": "privacy[final]: admin sees all three obligations",
      "ok": true,
      "detail": [
        "obligation:lpA",
        "obligation:lpB",
        "obligation:lpC"
      ]
    },
    {
      "id": "privacy[final]: lpA sees only its own obligation",
      "ok": true,
      "detail": [
        "obligation:lpA"
      ]
    },
    {
      "id": "privacy[final]: lpA sees only its own commitment",
      "ok": true,
      "detail": [
        "commitment:lpA"
      ]
    },
    {
      "id": "privacy[final]: lpA sees no Fund or CapitalCall",
      "ok": true
    },
    {
      "id": "privacy[final]: lpA sees no other LP's allocation",
      "ok": true,
      "detail": []
    },
    {
      "id": "privacy[final]: lpB sees only its own obligation",
      "ok": true,
      "detail": [
        "obligation:lpB"
      ]
    },
    {
      "id": "privacy[final]: lpB sees only its own commitment",
      "ok": true,
      "detail": [
        "commitment:lpB"
      ]
    },
    {
      "id": "privacy[final]: lpB sees no Fund or CapitalCall",
      "ok": true
    },
    {
      "id": "privacy[final]: lpB sees no other LP's allocation",
      "ok": true,
      "detail": []
    },
    {
      "id": "privacy[final]: lpC sees only its own obligation",
      "ok": true,
      "detail": [
        "obligation:lpC"
      ]
    },
    {
      "id": "privacy[final]: lpC sees only its own commitment",
      "ok": true,
      "detail": [
        "commitment:lpC"
      ]
    },
    {
      "id": "privacy[final]: lpC sees no Fund or CapitalCall",
      "ok": true
    },
    {
      "id": "privacy[final]: lpC sees no other LP's allocation",
      "ok": true,
      "detail": []
    },
    {
      "id": "privacy[final]: outsider sees nothing",
      "ok": true,
      "detail": {
        "Fund": [],
        "CommitmentInvitation": [],
        "InvestorCommitment": [],
        "CapitalCall": [],
        "CapitalCallObligation": [],
        "PaymentRequest": [],
        "Allocation": []
      }
    },
    {
      "id": "privacy[stream]: admin received no transaction event about another party's fund records or payments",
      "ok": true,
      "detail": {
        "transactions": 21,
        "events": 82,
        "foreign": []
      }
    },
    {
      "id": "privacy[stream]: lpA received no transaction event about another party's fund records or payments",
      "ok": true,
      "detail": {
        "transactions": 7,
        "events": 33,
        "foreign": []
      }
    },
    {
      "id": "privacy[stream]: lpB received no transaction event about another party's fund records or payments",
      "ok": true,
      "detail": {
        "transactions": 11,
        "events": 59,
        "foreign": []
      }
    },
    {
      "id": "privacy[stream]: lpC received no transaction event about another party's fund records or payments",
      "ok": true,
      "detail": {
        "transactions": 7,
        "events": 26,
        "foreign": []
      }
    },
    {
      "id": "privacy[stream]: outsider received no transaction event about another party's fund records or payments",
      "ok": true,
      "detail": {
        "transactions": 0,
        "events": 0,
        "foreign": []
      }
    }
  ]
}
