Skip to content

feat(solana/charge): support for confidential transfers - #305

Merged
brendanjryan merged 5 commits into
tempoxyz:mainfrom
solana-foundation:feat/solana-confidential-transfers
Aug 7, 2026
Merged

feat(solana/charge): support for confidential transfers#305
brendanjryan merged 5 commits into
tempoxyz:mainfrom
solana-foundation:feat/solana-confidential-transfers

Conversation

@lgalabru

Copy link
Copy Markdown
Contributor

No description provided.

lgalabru added 3 commits June 20, 2026 14:08
…ditor

The confidential profile previously mandated a mint auditor and had the
server decrypt the auditor handle to verify the paid amount. That couples
the payment provider to the stablecoin issuer (the auditor key belongs to
the issuer, one per mint).

Correct it: the server is the payment recipient, so it confirms the amount
by decrypting what its own confidential account received, using its own
ElGamal key. The auditor is demoted to an optional issuer-side compliance
facility that plays no role in charge verification. `auditorElgamalPubkey`
becomes OPTIONAL/informational. Updates the overview, terminology,
methodDetails, verification, settlement, security, examples, and the
client-side checklist accordingly.
…mo privacy

Align the confidential profile with the gateway-paid reality (paying clients
hold no SOL):
- The server, not the client, funds proof/record-account rent and is their
  authority + rent-reclaim destination; the client only signs the transfer
  authority and ephemeral account keypairs.
- The server absorbs the SOL fee (no splits recovery; transfer is
  single-recipient) and prices it in.
- Drain protection is the per-tx instruction allow-list before co-signing plus
  a periodic orphan sweep the server can run because it owns the accounts
  (two-pass guard vs the settlement window).
- Memo privacy: no on-chain order memo by default; reconcile by the final tx
  signature. Any memo present MUST match the issued challenge.
- Note clients SHOULD pre-flight (mint ext, recipient allows credits, balance).
@lgalabru lgalabru changed the title feat(solana): support for confidential transfers feat(solana/charge): support for confidential transfers Jul 31, 2026
transactions. If settlement aborts after some transactions have
landed, on-chain state may include created proof/record accounts
without a completed transfer. The server MUST NOT return a
success receipt in this case. Because the server funded the rent

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

👍

@brendanjryan

Copy link
Copy Markdown
Collaborator

@lgalabru -- some CI issues but otherwise looks good!

@lgalabru

lgalabru commented Aug 7, 2026

Copy link
Copy Markdown
Contributor Author

CI fixed, thanks @brendanjryan!

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown

Spec Preview

Spec Changed Artifacts
draft-card-charge-00 Yes HTML · TXT · XML · PDF
draft-evm-charge-00 Yes HTML · TXT · XML · PDF
draft-evm-session-00 Yes HTML · TXT · XML · PDF
draft-hedera-charge-00 Yes HTML · TXT · XML · PDF
draft-httpauth-payment-00 Yes HTML · TXT · XML · PDF
draft-lightning-charge-00 Yes HTML · TXT · XML · PDF
draft-lightning-session-00 Yes HTML · TXT · XML · PDF
draft-nearintents-charge-01 Yes HTML · TXT · XML · PDF
draft-payment-discovery-00 Yes HTML · TXT · XML · PDF
draft-payment-intent-charge-00 Yes HTML · TXT · XML · PDF
draft-payment-intent-subscription-00 Yes HTML · TXT · XML · PDF
draft-payment-transport-mcp-00 Yes HTML · TXT · XML · PDF
draft-solana-charge-00 Yes HTML · TXT · XML · PDF
draft-solana-session-00 Yes HTML · TXT · XML · PDF
draft-stellar-charge-00 Yes HTML · TXT · XML · PDF
draft-stripe-charge-00 Yes HTML · TXT · XML · PDF
draft-stripe-subscription-00 Yes HTML · TXT · XML · PDF
draft-tempo-charge-00 Yes HTML · TXT · XML · PDF
draft-tempo-session-00 Yes HTML · TXT · XML · PDF
draft-tempo-subscription-00 Yes HTML · TXT · XML · PDF
draft-usdc-charge-00 Yes HTML · TXT · XML · PDF

Browse preview release assets

@brendanjryan
brendanjryan merged commit f9506cd into tempoxyz:main Aug 7, 2026
5 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