Solana Pay transaction requests bring on-chain interactivity to the off-chain world

by Solana Foundation

Solana Pay transaction requests bring on-chain interactivity to the off-chain world

Solana Pay continues to reshape the world of payments.

Only three months past its introduction, the first truly decentralized payments rail has captured the hearts and minds of merchants and developers seeking a modern way to bring commerce activity on chain. In fact, many of the 130-plus competitors in the inaugural payments track of the recently completed Solana Riptide hackathon leveraged Solana Pay.

Solana Pay is now taking another leap forward with the availability of transaction requests for developers and merchants. Until now, Solana Pay has relied on simple one-way transfers of SOL, USDC, NFTs, and other tokens. These were fantastic starting points to enable truly decentralized payments.

But with transaction requests, it’s now possible to bring any Solana transaction into the real world through an interactive request between a checkout app and a mobile wallet, enabling NFT minting, dynamic discounts, tokenized loyalty programs, and so much more. Here’s how it works:

  1. The customer scans a merchant QR code, which their wallet app interprets as a Solana Pay transaction request URL.
  2. The wallet makes an HTTP request to the merchant API.
  3. The merchant receives the wallet address in the request and can respond with a customized transaction for the customer.
  4. The wallet shows the transaction details to the customer just like any other transaction, and can also display a merchant URL and icon.
  5. The customer approves (or declines) the transaction, signing with their private key, and sending the transaction to the network.

Transaction requests elevate the power of a simple purchase, allowing any transaction that’s possible on Solana. Here are a some initial use cases for devs to explore:

  • Merchants can enact a true bi-directional communication channel with customers. They can atomically mint an NFT or transfer loyalty tokens in the transaction at the point of sale.
  • Composable DeFi transactions involving borrowing, swaps, escrow, privacy, and more, can occur at the point of sale, enabling refunds, chargebacks, insurance, buy-now-pay-later, discounts, rewards, and yield generation.
  • Merchants can opt to pay for transaction fees, token account creation, and NFT minting on their customers’ behalf so they don't need SOL in their wallet, reducing the friction of interacting with the Solana ecosystem.
  • Merchants can decline to respond to a transaction request, which could be used to allow permissioned payments, such as in cases where authentication is required for compliance.
  • Think beyond payments. Merchants and brands can create dynamic experiences that send tokens, invitations, and gifts to customers. Check out mtnPay’s Booth app which mints 1:1 NFTs for customers using transaction requests.

Transaction requests are now live and available for developers and merchants to use. Phantom and Solflare support them today, and more wallets are already working on it. Devs can read the spec here, configure the Point of Sale app to use transaction requests, read the merchant integration guide, and join the Solana Tech Support Discord. There’s also a tutorial available from Pointer.

On May 5th, 2022, Solana Pay took over Atlas Cafe in San Francisco to demonstrate the unique utility of blockchain-based payments. Cafe customers made a purchase with USDC via Solana Pay, which automatically minted them an NFT loyalty token from Atlas and generated 20% off the purchase. The token is also good for automatic discounts through the end of May at Atlas when using Solana Pay.

This post has been updated with details about the Solana Pay takeover at Atlas Cafe on May 5th, 2022.