Furlpay Docs
Open App

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

MethodPathDescription
GET/actions.jsonDiscovery rules mapping /pay/* → the Action API
GET/api/actions/pay/[orderId]Blink metadata: icon, title, pay buttons
POST/api/actions/pay/[orderId]?asset=USDC|SOLBase64 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 setACTIONS_CORS_HEADERS plus X-Action-Version and X-Blockchain-Ids (sRFC 31), and an OPTIONS handler 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 Blink

Starter 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.