Skip to content

Gap: who verifies the resource server / payee before the first x402 payment? #450

Description

@vedux98

Problem

x402 (and AP2) solve authorization and settlement: an agent can pay a resource server with USDC when it hits 402 Payment Required.

They do not answer: is this counterparty legitimate?

Before the first payment (and on every retry), an agent typically has:

  • a resource URL
  • one or more payTo addresses
  • maybe a merchant name from an AP2 mandate

Nothing in the protocol checks phishing domains, sanctioned / scam payees, mule patterns, or brand impersonation. The facilitator’s job is “don’t steal the funds,” not “is this seller real?”

That gap is where agents get drained or social-engineered — especially on first contact with a newly listed Bazaar endpoint.

What a fix looks like (shape, not a vendor pitch)

An advisory verify-before-pay step between discovery and settle:

  1. Agent receives 402 / mandate / checkout context
  2. Calls a trust check on the extracted URL(s) + payee(s)
  3. Branches on a structured verdict (allow / warn / block) + one plain-language reason
  4. Only then signs / retries payment

complementary to settlement-attestation tools (e.g. TrustBench receipts that prove payment happened): one attests verification before, the other attests settlement after.

Why this belongs on the ecosystem list

Builders browsing this README already see KYB/data APIs (e.g. Strale) and settlement audit layers. The missing middle is a verdict-shaped, agent-callable gate at payment time — MCP + REST — without putting Faro (or anyone) in the custody path.

Happy to refine wording or point at an open recipe (verify_before_pay for x402/AP2/ACP) if useful for the list.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions