diff --git a/code/samples/python/scenarios/a2a/human-present/crypto-solana/README.md b/code/samples/python/scenarios/a2a/human-present/crypto-solana/README.md new file mode 100644 index 00000000..dac96938 --- /dev/null +++ b/code/samples/python/scenarios/a2a/human-present/crypto-solana/README.md @@ -0,0 +1,142 @@ + + +# Agent Payments Protocol Sample: Human Present Purchases with On-Chain Solana USDC + +This sample demonstrates the A2A `ap2-extension` for a human-present transaction +where the buyer settles with on-chain USDC on Solana (or native SOL for +micropayments). It mirrors the existing `x402` scenario but uses Solana Pay +semantics — specifically the **`reference` pubkey** primitive — to bind the +settling transaction to a specific AP2 `PaymentMandate`. + +**Note:** This sample pairs with the separate `crypto-algo` human-present +scenario. Together they cover non-EVM settlement on Algorand and Solana as a +complement to the EVM-focused `x402` path. + +## Scenario + +Human-present flows are commerce flows where the user is present to confirm +purchase details. The user signs the `PaymentMandate` giving all parties high +confidence in the transaction. + +The Solana variant adds one additional primitive on top of the standard AP2 +mandate chain: + +### Solana Pay `reference` binding + +Solana has no native transaction memo field (unlike Algorand or Hedera), and +the SPL Memo Program is unreliable across wallets. Instead, Solana Pay defines +a `reference` pubkey mechanism: + +1. The merchant (or its Merchant Agent) generates a fresh, single-use ed25519 + keypair per checkout. +2. The public key is embedded in the Solana Pay URL: + + ```text + solana: + ?amount= + &spl-token= + &reference= + &label=