Skip to content

Optional Base-mainnet v2 POST fixture for x402_pay / X402HttpxCompatClient #999

Description

I work on zFinia (https://zfinia.com). This is a narrow interoperability offer, not a listing/endorsement request and not a request for IntentKit to manufacture a purchase.

I checked the current IntentKit x402 path before opening this: x402_pay accepts an arbitrary absolute URL, POST + dict-as-JSON body, a caller-set max_value, and an idempotency key; X402HttpxCompatClient parses v2 PAYMENT-REQUIRED, registers the exact EVM client, emits the payment-signature transport, and rebuilds the retry with the original request.content. That makes it a particularly clean match for a real external JSON-body seller rather than a GET-only demo.

If an independent Base-mainnet regression fixture is useful, this existing deterministic route is live:

  • POST https://api.zfinia.com/x402/v1/accessibility-contrast-calculator
  • x402 v2 exact, Base eip155:8453, canonical Base USDC
  • amount 1000 atomic ($0.001)
  • body: {"foreground":"#000000","background":"#ffffff","large_text":false}
  • unpaid POST returns HTTP 402 with PAYMENT-REQUIRED
  • after an independently funded successful payment/retry, JSON includes contrast_ratio: 21
  • catalog: https://api.zfinia.com/.well-known/x402.json

For x402_pay, the useful check is specifically: preview/limit → v2 challenge parse → exact EVM signature → same JSON body on the one paid retry → settlement response, while keeping max_value=1000 (or another caller-approved cap).

zFinia's MCP endpoint is challenge-handoff only; it does not sign or pay, so the HTTP POST above is the relevant fixture for IntentKit's buyer path.

If your own test hosts already cover this exact Base-v2 POST shape, no action is needed. If this fixture exposes a concrete seller/client incompatibility, I can make the smallest zFinia-side schema/interop correction where that is the correct side to change. Please do not self-fund or reimburse a zFinia test on our behalf.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions