Skip to main content
Puffin Pay is MacLeod Technologies’ payment gateway for stablecoins. Give your customers a checkout that accepts USDC, USDT, EURC, and more — on Solana, Ethereum, Base, Polygon, BSC, Arbitrum, Optimism, or XDC — and get a confirmed payment back on your own terms: a signed webhook, a live dashboard, and a receipt your customer can keep. You pick how deep to integrate. Share a link with zero code, drop a checkout modal into your site with one script tag, or drive the whole flow from your server with a single API call — the payment experience is the same hosted checkout page underneath either way.

Ways to integrate

Payment links

Zero code. Create a link in the dashboard, share it anywhere.

Hosted checkout

One API call creates a payment; redirect your customer to our checkout page.

Embedded (iframe SDK)

Drop puffin.js into your site and open checkout in a modal — customers never leave.

Wallet-as-a-Service

Need standing wallets rather than one-off payments? Create and manage USDC/USDT wallets across chains directly over the API.
Holding funds across more chains than you’d like? See Bridging & swaps — one endpoint moves value between chains and assets, and we pick the fastest safe route for you automatically.

How a payment works

  1. You create a payment intent (amount + token + chain).
  2. Puffin mints a fresh deposit address for that payment.
  3. Your customer pays; we detect and confirm on-chain.
  4. The intent flips to CONFIRMED, your webhook fires (HMAC-signed), and the dashboard updates in real time.
Every payment address is single-use — no amount-matching heuristics, no crossed payments.

Getting paid out

Confirmed payments settle to a wallet you control, on the schedule your account is configured for — see Settlement for how that works and how to point it at your own address.

Pricing

Fees are set per capability (payments, wallets, bridging) by your plan, with custom rates available as you grow — see Teams & plans for how pricing is structured, or check GET /v1/gateway/merchants/me/fees for your account’s current numbers.