What it does

A buyer agent proposes a schema-validated intent (topic, price, criteria). The criteria are frozen and hashed. Trustrail creates a PayPal Orders v2 intent=AUTHORIZE order (an authorization hold, not escrow). The seller delivers a brief, and a verifier gives a per-criterion verdict with evidence refs (S2.P1, SRC3), using deterministic checks plus a MiniLM semantic model. The hold is captured if every criterion passes and voided on clear failure; anything else is escalated to a human review queue. Settlement is the only role that holds PayPal credentials, and it settles once per hold, only for a verdict bound to the criteria hash and evidence hash. Every step is a hash-chained receipt with ECDSA-signed checkpoints, verifiable offline.

Real PayPal sandbox IDs

  • Capture, then refund: order 6PC2274310699860J; authorization 6ST94335A2583300R; capture 4NF8083802987415F; refund 4G273843H2296090C.
  • Void: order 60T81490D7904171R; authorization 9U451998CL6432947.
  • Escalate, then void: order 2BW883671H5201252; authorization 3DS62029784082630.

AI, honestly

  • MiniLM (free, runs locally or in the browser) on 25 labeled cases (7 normal, 18 adversarial): 0/18 false approvals. 4/7 good briefs were auto-captured and 3/7 were escalated.
  • A similarity-only baseline approved 4/15 adversarial cases.
  • A pluggable LLM judge can only veto. Qwen 0.5B was tested, found useless, and is off by default.
  • AG Studio was not used.

AG Grid

Custom held-value, authorization-expiry with honor-period, criteria, and review-queue action widgets, plus a drill-down grid, a pinned totals row, and a read-only "which holds need review today" query.

Links

Repo: https://github.com/northstar-trustrail/trustrail-hold Demo: https://northstar-trustrail.github.io/trustrail-hold/ Video: https://youtu.be/Iy6OhwLUgxI

Built With

Share this project:

Updates

Submission history