Skip to content

fix(tempo): bind hash credentials to the paying challenge - #27

Merged
raubrey-stripe merged 1 commit into
mainfrom
fix/tempo-bind-hash-to-payer
Sep 1, 2026
Merged

fix(tempo): bind hash credentials to the paying challenge#27
raubrey-stripe merged 1 commit into
mainfrom
fix/tempo-bind-hash-to-payer

Conversation

@raubrey-stripe

Copy link
Copy Markdown
Contributor

Summary

  • Tempo push-flow verification accepted any settled Transfer of the right token, amount, and recipient, so an attacker could present someone else's transaction hash as proof of their own payment (claimOnce only blocked a second use).
  • Require a challenge-bound MPP attribution memo (mppx/mpp-rb compatible) unless the merchant set an explicit memo, and parse did:pkh:eip155 credential.source before claiming the hash.
  • Ignore local .agents/ skill files.

Test plan

  • ./gradlew test
  • Confirm a plain Transfer / hash credential is rejected with memo is not bound to this challenge
  • Confirm a memo bound to a different challenge or realm is rejected
  • Confirm a matching attribution memo verifies, then replay of the same hash still fails
  • Confirm a malformed or wrong-chain source is rejected without consuming the replay claim

Made with Cursor

Require a challenge-bound attribution memo on Tempo transfers so a
third party cannot redeem someone else's settled transaction as their own.

Co-authored-by: Cursor <cursoragent@cursor.com>
Committed-By-Agent: cursor
@raubrey-stripe
raubrey-stripe marked this pull request as ready for review September 1, 2026 13:32
@raubrey-stripe
raubrey-stripe merged commit ff7f369 into main Sep 1, 2026
10 checks passed
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