PayeeGuardagent payment gate
For any AI agent

One call before you pay.

PayeeGuard works like a card fraud check at checkout. Before your agent sends money, it asks PayeeGuard. If the answer isn't PAY, it doesn't pay.

Playground
API · POST /api/guard/check
curl -X POST https://rs-oxbridge-ai-race.vercel.app/api/guard/check \
  -H "content-type: application/json" \
  -d '{
    "payeeName": "Saigon Coffee Co.",
    "address": "8zEPrcPaeJ7J1Hcqm5Ri7AAMJgxnkHRXhoMfe5LRfnQ5",
    "amountUsdc": 0.05,
    "reference": "order-123",
    "messageText": "the invoice / page / email your agent read"
  }'
Answer fieldMeaning
verdictPAY, HOLD (ask the payee to verify) or BLOCK
scoreRisk 0–100
checks[]Each check: status, points, plain-English detail, evidence
receipt.urlTamper-evident record of the decision
Open to any origin (CORS). Nothing is paid by this call.
Agent rule
Before any payment:
  r = POST https://rs-oxbridge-ai-race.vercel.app/api/guard/check {payeeName, address, amountUsdc, messageText}
  if r.verdict == "PAY":   pay, using the reference as memo
  if r.verdict == "HOLD":  ask the payee to verify at https://rs-oxbridge-ai-race.vercel.app/merchant/verify
  if r.verdict == "BLOCK": stop and tell the human why (r.explanation)
Website plugin · one line
<div data-payeeguard
     data-payee="Saigon Coffee Co."
     data-address="8zEPrcPaeJ7J1Hcqm5Ri7AAMJgxnkHRXhoMfe5LRfnQ5"
     data-amount="0.05"></div>
<script src="https://rs-oxbridge-ai-race.vercel.app/payeeguard.js" async></script>
Shows a live "Verified payee" / "Possible fraud" badge next to the pay button on any shop.
Merchants · prove wallet ownership

A payee asks for a one-time code, signs it with its wallet (signMessage), and sends back the signature. PayeeGuard checks it with ed25519 and adds the wallet to the verified-payee directory.