Payments
Solana Actions & Blinks
Turn any Furlpay checkout into a shareable link that unfurls into a signable payment widget — a Blink — on X, Discord, or any Blink-aware client. Built on the Solana Actions specification.
Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /actions.json | Discovery rules mapping /pay/* → the Action API |
| GET | /api/actions/pay/[orderId] | Blink metadata: icon, title, pay buttons |
| POST | /api/actions/pay/[orderId]?asset=USDC|SOL | Base64 transfer transaction to sign |
| OPTIONS | /api/actions/* | CORS preflight for Blink clients |
Spec-correct by construction
These are the details most implementations get wrong — and Furlpay handles them:
- Dollar-denominated amounts — the SOL path converts via a live SOL/USD price rather than charging "25 SOL" for a $25 order.
- Idempotent merchant ATA creation — the first payment to a fresh token account doesn't fail.
transferChecked— validates mint + decimals on-chain, not a bare transfer.- Full header set —
ACTIONS_CORS_HEADERSplusX-Action-VersionandX-Blockchain-Ids(sRFC 31), and anOPTIONShandler so Blinks render.
Try it
bash
# metadata a Blink client reads to render the widget
curl https://furlpay.com/api/actions/pay/order_9f21
# then paste that URL into https://dial.to to render the BlinkStarter template
A standalone Next.js starter is open-sourced at
github.com/FurlPay/furlpay-solana-actions-template — clone it to ship spec-correct Blinks in minutes.