Skip to content

feat: add Paykit ERC-20 payment proofs - #163

Draft
ben-kaufman wants to merge 1 commit into
masterfrom
feat/usdt-paykit-proofs
Draft

ben-kaufman wants to merge 1 commit into
masterfrom
feat/usdt-paykit-proofs

Conversation

@ben-kaufman

Copy link
Copy Markdown
Collaborator

Description

Adds signing and verification of Paykit ERC-20 payment proofs for direct Arbitrum USDT0 payments. An executed transfer can be bound to the authenticated payer/payee, receiving app, request, billing period and conversion quote using the rc59 EIP-712 profile. Proof retries do not send another payment.

Verification checks successful canonical execution, the pinned token and recipient, and the signature against the Transfer event's sender. It returns the actual amount, block timestamp and a receipt-relative payment identity; callers remain responsible for request terms, deadlines and preventing reuse across requests. The receipt service must retain original log positions when filtering receipts.

Includes Swift bindings and the published Paykit rc59 interoperability vectors. Independent of inbound bridging and the Paykit SDK runtime.

Preview

N/A — core APIs only.

QA Notes

  • USDT suite: 64 passed; one existing local-fork test ignored.
  • rc59 vectors and canonical encoding checks: 2 passed, including changed-app rejection.
  • Rust formatting and Clippy completed; existing warnings remain outside the added proof code.
  • Regenerated Swift and Kotlin bindings; Swift typecheck passed.
  • Independent correctness and code-quality review found no actionable issue.

The updated rc59 format has fixture validation here. Earlier mainnet Paykit tests used rc56 and do not establish rc59 mobile interoperability; that acceptance follows the mobile architecture update.

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.

1 participant