Every escrow settles as a mintfx withdrawal hold keyed by the escrow's own
external id (ESCROW_ON_MINTFX.md §5), so exactly-once comes from the chain
rather than from a lock: the program refuses a second init of the IK PDA
and any second transition out of Submitted. Each chain activity therefore
reads the PDA before it sends and returns the existing signature when the
step already happened, so no step needs a durable nonce.
Activities that mutate escrow transfer state.
Every escrow settles as a mintfx withdrawal hold keyed by the escrow's own external id (ESCROW_ON_MINTFX.md §5), so exactly-once comes from the chain rather than from a lock: the program refuses a second
initof the IK PDA and any second transition out ofSubmitted. Each chain activity therefore reads the PDA before it sends and returns the existing signature when the step already happened, so no step needs a durable nonce.