Skip to content

[Feat]: Cross-merchant budget enforcement for IntentMandates #207

@Ectsang

Description

@Ectsang

Is your feature request related to a problem? Please describe.

The roadmap mentions multi-merchant transaction topologies as a long-term goal, and #133 proposes a budget field on IntentMandate. Both point at the right problem, but there's a gap between them: once an IntentMandate has a budget and an agent shops across multiple merchants, who enforces the cumulative cap?

The spec handles single-merchant budget violations as a dispute scenario (Section 6 accountability matrix, "exceeds budget" under Mispick/Unapproved). But that's after-the-fact evidence, not prevention. In a multi-merchant flow it gets worse: each merchant sees the mandate independently. Merchant A doesn't know the agent already spent half the budget at Merchant B. The budget becomes unenforceable at the protocol level the moment the agent talks to more than one merchant.

A few possible approaches: the Shopping Agent could self-report remaining budget (trusts the agent). The mandate could carry a running ledger signed by each merchant (leaks purchase history across merchants). An external service could track spend and issue signed attestations of remaining budget (adds a dependency but preserves privacy between merchants).

Curious if the team has a direction in mind for this, especially as multi-merchant flows move from long-term vision toward implementation.

Describe the solution you'd like

A mechanism for enforcing IntentMandate budget constraints across multiple merchants. The third paragraph of the description above outlines three possible approaches (agent self-reporting, running ledger, external verification service), each with different trust and privacy tradeoffs.

Describe alternatives you've considered

No response

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions