Add Hedera charge intent#251
Conversation
First native Machine Payments Protocol method for Hedera. Charge intent (draft-hedera-charge-00): - Native Hedera TransferTransaction with Attribution memo - Push mode (type="hash") + pull mode (type="transaction") - Challenge-bound replay protection (same 32-byte memo as Tempo) - Verification via Mirror Node REST API - Splits (atomic multi-recipient, up to 9) Session intent (draft-hedera-session-00): - HederaStreamChannel.sol escrow (ERC-20 payment channels) - EIP-712 cumulative voucher signatures - Open, voucher, topUp, close, requestClose, withdraw - SSE transport for metered streaming (LLM token billing) - 15-minute close grace period Reference implementation: https://github.com/tomrowbo/mppx-hedera npm: mppx-hedera@0.2.1 Deployed contracts (both Sourcify-verified): Testnet: 0x401b6dc30221823361E4876f5C502e37249D84C3 (296) Mainnet: 0x401b6dc30221823361E4876f5C502e37249D84C3 (295)
|
Hi! Are you actively pushing this forward? If so, can you fix CI and ensure your spec is clean before review? |
Renamed subsection "Encoding" to "Memo Encoding" with explicit
anchor {#memo-encoding} to avoid collision with top-level
"Encoding Conventions" section {#encoding}.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Hey! Yes, actively pushing. Just fixed the CI — was a duplicate section anchor. Should be green now. Let me know if there's anything else needed on the spec. |
Spec Preview
|
|
Thanks! Gave a brief skim Two asks:
|
|
|
||
| Every Hedera charge transaction MUST include an Attribution | ||
| memo in the transaction's native memo field. The memo | ||
| provides challenge binding (replay protection) and server |
| client is anonymous, all 10 bytes MUST be zero. | ||
|
|
||
| NONCE (bytes 25-31) | ||
| : The first 7 bytes of `keccak256(challengeId)`, where |
Session spec moved to a dedicated PR per reviewer request. This PR now covers charge intent only. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Done — split into two PRs:
On the Hedera side: Lindsay Walker (Hedera AI PM) and the AI Studio team are actively engaged — they're reviewing the Agent Kit plugin integration (hashgraph/hedera-agent-kit-js#760) and have provided implementation feedback. Happy to connect them here for long-term maintenance questions if that would help. |
|
Hello, I am the product manager of AI Studio at Hedera Hashgraph. We will maintain and make PRs to this if we make and changes and updates to our plugins. Please let us know if there is anything we ever need to do by raising an issue in the AI Studio JS SDK repo |
|
incredible -- thank you both! Doing a final review now |
brendanjryan
left a comment
There was a problem hiding this comment.
one comment on co-authors but otherwise this looks great!
| author: | ||
| - name: Tom Rowbotham | ||
| ins: T. Rowbotham | ||
| email: tom@xeno.money |
There was a problem hiding this comment.
can you add https://github.com/walkerlj0 as a co-author?
generally we want to have more than one author for proposals
| This requests a transfer of 0.50 USDC on Hedera | ||
| testnet (chain ID 296). Note that `decimals` is not | ||
| present in the wire format; it is only used during | ||
| request construction by the mppx schema transform. |
| ## Mirror Node Lag {#mirror-node-lag} | ||
|
|
||
| Hedera achieves consensus in approximately 3-5 seconds, | ||
| but the Mirror Node REST API may take an additional 3-5 |
There was a problem hiding this comment.
helpful context -- thank you!
|
|
||
| # Acknowledgements | ||
|
|
||
| The author thanks the Tempo team for the MPP attribution |
334f0ad to
f8072fb
Compare
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
f8072fb to
b7a0d8b
Compare
Summary
Native charge intent for Hedera (
draft-hedera-charge-00). One-time payments via native HederaTransferTransactionwith Attribution memo (challenge-bound, Tempo-compatible byte layout).Session intent is in a separate PR per reviewer request.
Highlights
type="hash"): client broadcasts nativeTransferTransaction, server verifies via Mirror Node REST APItype="transaction"): client signs + serializes, server broadcastsTAG + VERSION + SERVER_ID + CLIENT_ID + NONCE) — ensures cross-ecosystem compatibilityfeePayerAccountId)Reference implementation
mppx-hedera(v0.2.2)hak-mppx-hedera-plugin(v1.1.2) for Hedera Agent KitHedera ecosystem support
Lindsay Walker (Hedera AI PM) and the Hedera AI Studio team are aware of this work and actively engaged — they are reviewing the Agent Kit plugin (hashgraph/hedera-agent-kit-js#760) and have provided feedback on the implementation. Happy to connect them for long-term maintenance questions.
Checklist
draft-httpauth-payment-00) and charge intent (draft-payment-intent-charge-00)