Skip to content

feat: add A2A (Agent-to-Agent) x402 payment endpoint#41

Open
nirholas wants to merge 1 commit into
aws-samples:mainfrom
nirholas:feat/a2a-agent-payments
Open

feat: add A2A (Agent-to-Agent) x402 payment endpoint#41
nirholas wants to merge 1 commit into
aws-samples:mainfrom
nirholas:feat/a2a-agent-payments

Conversation

@nirholas

Copy link
Copy Markdown

Implements the two-leg A2A x402 handshake so other agents can call and pay this service programmatically without a human in the loop.

Protocol: https://github.com/google-a2a/a2a-x402/v0.1
POST /a2a Content-Type: application/json
Body: JSON-RPC { method: message/send, params: { message: {...} } }

Leg 1 — caller sends message without payment:
Returns task state input-required with x402.payment.required in
message metadata, advertising the USDC amount, contract, and payTo.

Leg 2 — caller re-sends with x402.payment.status: payment-submitted
and the signed EIP-3009 authorization in x402.payment.payload:
Verifies with x402.org facilitator, generates image via Nova Canvas,
settles (deferred, only on success), returns completed task with
image artifact and x402.payment.receipts.

The endpoint is framework-agnostic: any A2A-compliant caller that can sign USDC EIP-3009 authorizations can consume it without modifying the agent code.

Issue #, if available:

Description of changes:

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Implements the two-leg A2A x402 handshake so other agents can call and
pay this service programmatically without a human in the loop.

Protocol: https://github.com/google-a2a/a2a-x402/v0.1
  POST /a2a  Content-Type: application/json
  Body: JSON-RPC { method: message/send, params: { message: {...} } }

Leg 1 — caller sends message without payment:
  Returns task state input-required with x402.payment.required in
  message metadata, advertising the USDC amount, contract, and payTo.

Leg 2 — caller re-sends with x402.payment.status: payment-submitted
  and the signed EIP-3009 authorization in x402.payment.payload:
  Verifies with x402.org facilitator, generates image via Nova Canvas,
  settles (deferred, only on success), returns completed task with
  image artifact and x402.payment.receipts.

The endpoint is framework-agnostic: any A2A-compliant caller that can
sign USDC EIP-3009 authorizations can consume it without modifying the
agent code.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants