Skip to content

Add Solana session intent specification#200

Closed
alexanderattar wants to merge 2 commits intotempoxyz:mainfrom
alexanderattar:feat/solana-session
Closed

Add Solana session intent specification#200
alexanderattar wants to merge 2 commits intotempoxyz:mainfrom
alexanderattar:feat/solana-session

Conversation

@alexanderattar
Copy link
Copy Markdown

Summary

This PR adds the Solana session method specification for MPP, enabling
streaming micropayments on Solana via unidirectional payment channels
with Ed25519-signed vouchers.

What this defines

  • Channel lifecycle: open, active (off-chain vouchers), settle, close, reclaim
  • 206-byte domain-separated voucher format with Ed25519 signatures
  • PDA-based on-chain escrow using SPL tokens
  • Ed25519 precompile verification via instructions sysvar
  • Session credential and receipt schemas
  • Timeout semantics with no ambiguous overlap windows

Relationship to existing specs

  • Uses method="solana" shared with the charge spec (Solana charge intent specification #188)
  • Uses intent="session" following the pattern established by Tempo and Lightning sessions
  • Follows the same encoding conventions (JCS + base64url) as the Solana charge spec

Implementation

Reference implementation in progress at
https://github.com/alexanderattar/mpp-sdk (fork of solana-foundation/mpp-sdk).

Context

I reviewed PR #188 (Solana charge) with feedback on push-mode tx binding,
blockhash expiry, and Token-2022 handling. This session spec builds on
that charge spec and is designed to be complementary.

Happy to iterate on the spec based on feedback.

…n SDK surface (open/update/topup/close, canonical voucher JSON, verifier hooks) while preserving stricter security language around replay protection, atomic state updates, and Ed25519 onchain verification.
| | |
| (11) 200 OK + Receipt | |
|<-------------------------- | |
~~~
Copy link
Copy Markdown
Contributor

@lgalabru lgalabru Mar 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, that's confusing.
Mind if we close this PR and move the convo to #201? I see a lot of misconception in this PR, coming straight from some early session experimentations we've made in @solana/mpp.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure I'm happy to converge on #201, but can you be a little more specific about what is confusing? I'd love to help contribute!

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