Not paid in time
If the runner hasn't marked the job paid by its deadline, anyone can expire it: every USDG goes back to the agent.
The runner backs out
Before paying, the runner can cancel with a signature: full refund to the agent.
Paid, but it didn't arrive
The agent disputes before the 24 h window ends. Its SDK shares the recipient's details with the arbiter, sealed, so the arbiter sees exactly what the runner was asked to pay.
The arbiter decides
Only on jobs the agent disputed, on the evidence: the sealed proof, the details, the timeline. It can send the escrowed USDG to the runner or back to the agent, nothing else.
Protocol
Refunds and disputes
What happens when a payout goes wrong.