Technical Reference

Blockchain in Payments

Working principles, network types, consensus mechanisms, DeFi protocols, stablecoins, and CBDCs — a technical guide to blockchain technology and its integration with modern payment infrastructure.

3–5 sXRPL / Stellar finality
$150B+stablecoin supply
130+CBDC projects globally
1M TPSLightning theoretical max

Solana Architecture

Solana uses an account model where every piece of state (including token balances) lives in a separate account. Transactions reference accounts as read-only or writable. Proof of History (PoH) timestamps each transaction, enabling ~65 000 TPS with ~400ms block times.

ConceptSolanaEthereum analogue
Native currencySOL (lamports, 1 SOL = 10⁹)ETH (wei, 1 ETH = 10¹⁸)
Token standardSPL TokenERC-20
Smart contractsPrograms (Rust/SBF)Contracts (EVM bytecode)
Account stateSeparate accountsIn-contract storage
ConsensusPoH + Tower BFTPoS Gasper
Block time~400ms~12s
Finality~400ms (optimistic)~12 min (2 epochs)
Typical fee$0.00001–$0.001$1–$50

SPL Token Payment flow

1. Token mint & ATAs
Each SPL token has a Mint account. Users hold balances in Associated Token Accounts (ATAs) — separate accounts owned by the Token Program.
2. Transfer instruction
Sender calls spl-token Transfer, referencing source ATA, destination ATA, and authority (sender keypair). No separate approve needed for P2P.
3. Block confirms
Transaction lands in the next block (~400ms). Optimistic confirmation is near-instant; full finality in ~3 seconds.
4. Settlement
Recipient's ATA balance updates. No reversals possible; no chargeback risk.

Solana Pay Specification

Solana Pay defines two request types encoded in a QR-scannable URI scheme, making it suitable for point-of-sale integration.

Transfer Request

Simple SOL or SPL-token transfer. The wallet constructs and signs the transaction automatically.

SOL transfer
solana:mvines9iiHiQTysrwkJjGf2gb9Ex9jXJX8ns3qwf2kN
?amount=1.5
&label=Acme+Coffee
&message=Order+%23A42
&memo=ORDER-A42
USDC transfer (SPL token)
solana:mvines9iiHiQTysrwkJjGf2gb9Ex9jXJX8ns3qwf2kN
?spl-token=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
&amount=10.00
&label=Acme+Coffee

Transaction Request

For complex payments (loyalty, NFT receipts, conditional logic), the merchant provides an API endpoint. The wallet POSTs its account address; the endpoint returns a partially signed transaction for the wallet to complete.

URI points to a merchant backend
solana:https://api.merchant.com/pay?orderId=A42
1. Wallet scans QR
Reads Solana Pay URI pointing to merchant's API endpoint.
2. Wallet GETs metadata
Fetches label and icon from endpoint (GET request).
3. Wallet POSTs account
Sends its public key to the endpoint. Merchant uses it to build a custom transaction.
4. Merchant returns tx
API responds with a serialized, partially signed transaction (base64 encoded).
5. Wallet signs & submits
User confirms; wallet adds their signature and broadcasts to the Solana network.

URI parameters

ParameterTypeDescription
amountdecimalTransfer amount (SOL or token units)
spl-tokenaddressSPL token mint address; omit for SOL
labelstring (URL-encoded)Merchant name shown in wallet
messagestringHuman-readable description
memostringOn-chain memo instruction (SPL Memo)
referenceaddress (repeatable)Public keys for payment tracking