Skip to content

spec: Add draft TXID payment payload specification#1004

Open
alftom wants to merge 2 commits intocoinbase:mainfrom
oma3dao:spec/payload-txid
Open

spec: Add draft TXID payment payload specification#1004
alftom wants to merge 2 commits intocoinbase:mainfrom
oma3dao:spec/payload-txid

Conversation

@alftom
Copy link
Copy Markdown
Contributor

@alftom alftom commented Jan 21, 2026

Adds a draft TXID payment payload (spec-only, for discussion) that validates payments via a payer-submitted on-chain transaction reference.

Description

This PR adds a draft specification for a new x402 payment payload type, TXID. TXID is a transaction-reference–based payment payload in which the payer executes an on-chain transfer directly and submits a signed payload that references that transaction. This enables x402 payments for assets and networks that do not support authorization-based transfer mechanisms such as EIP-3009, including native assets like ETH.

This draft directly addresses the use case described in Issue #612.

This change is spec-only and intended for discussion.

Notes on structure and naming

This PR introduces a new specs/payment-payloads/ directory to define the structure and processing of different payment payloads. The directory name is not meant to be prescriptive, and alternative naming or placement is open for discussion.

The draft specification also introduces an explicit payload.type field to identify the payload variant. While payload types could be inferred heuristically by inspecting payload structure, an explicit discriminator is for clarity and efficiency. This choice is not fundamental to the TXID mechanism itself and can be revisited independently.

Tests

Not applicable. This PR introduces documentation/specification changes only and does not include any code or testable behavior.

Checklist

  • This PR introduces no code changes
  • No tests are required for spec-only changes
  • My commits are signed (required for merge)

@cb-heimdall
Copy link
Copy Markdown

cb-heimdall commented Jan 21, 2026

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 0
Sum 1

@vercel
Copy link
Copy Markdown

vercel bot commented Jan 21, 2026

@alftom is attempting to deploy a commit to the Coinbase Team on Vercel.

A member of the Team first needs to authorize it.

alftom added 2 commits March 30, 2026 09:16
Adds a draft TXID payment payload (spec-only, for discussion) that validates payments via a payer-submitted on-chain transaction reference.
- Replace top-level settlement field with extra.assetTransferMethod: "txid"
- Add design rationale section explaining nonce synchronization issue
- Add self-hosted verification guidance (facilitator is optional)
- Key replay protection on (network, txRef) instead of txRef alone
- Retention window MUST be at least maxTimeoutSeconds
- Update base v2 spec to clarify payload structure varies by asset transfer method
@alftom alftom force-pushed the spec/payload-txid branch from 437975c to d354ec1 Compare March 30, 2026 16:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

specs Spec changes or additions

Development

Successfully merging this pull request may close these issues.

3 participants