$24
24 USDC · Base| Date | October 8, 2026 at 14:05 UTC |
| Seller | Northwind Coffee |
| Paid | 24 USDC |
| Network | Base |
| Transaction | 0x5e1f0c2a…9d0e1f2a |
| Item | Qty | Amount |
|---|---|---|
| Beans, 1 kg | 1 | $24 |
| Total | $24 | |
Accepted October 8, 2026 at 14:03 UTC
Non-custodial payments
Bitcoin, USDC and USDT. Your keys, your wallet, one flat monthly price.
Free up to 25 paid invoices a month.
Northwind Coffee
Beans, 1 kg
$24.00
Pay with
How it works
01
Add a public key from your Ledger or Trezor. Never a seed.
02
A payment link, a hosted checkout, or two API calls.
03
Money lands in your wallet. We send the receipt.
Checkout
Pick a coin and a network, then pay. Nothing real moves.
Northwind Coffee
Beans, 1 kg
$24.00
Pay with
Your cabinet
Money per day, coins and networks, your wallets. All counted. None held.
Overview
Demo shop. Invented figures.
Today
+32%$449
7 days
+3%$2,565
30 days
+38%$10,701
329 payments in 30 days
Developers
A link with no code. A button with one script. Or two API calls and a webhook.
Share it anywhere. No site needed.
One script on a site you allow.
<script src="https://pay.perly.io/pay/v1.5bdf2776ee74.js"
integrity="sha384-W98ndu50hymNVBtxKpwAcr3BxXUEFVzpxXZGF4AzqToIFMBPrQFVd4H60xXBzVJZ"
crossorigin="anonymous" defer></script>
<button data-perly-pay="coffee-beans">
Pay with crypto
</button>Invoices from your server.
const pay = new PerlyPay(process.env.PERLY_PAY_KEY);
const invoice = await pay.invoices.create({
amount: 2400,
currency: "USD",
description: "Beans, 1 kg",
});
redirect(invoice.url);Subscriptions
Each period sends an invoice, then reminders. The buyer pays from their wallet. You keep the price they signed up at.
Coffee Club
$18.00 / month
Next invoice in 7 days
Invoice for the next period
Coffee Club · 8 Nov – 8 Dec
Day 0
Trial starts
Day 14
First period paid
−7 days
Invoice for the next period
−1 day
Reminder
Due
Paid · renewed
Refunds
The buyer gives an address. You send from your wallet. We confirm it and issue the refund receipt.
Price settings
At checkout, the buyer ticks
B Base
0x2b5a…d6cf
23.98
Receipts
Numbered per shop. Sent by email, kept as a page, saved as a PDF.
$24
24 USDC · Base| Date | October 8, 2026 at 14:05 UTC |
| Seller | Northwind Coffee |
| Paid | 24 USDC |
| Network | Base |
| Transaction | 0x5e1f0c2a…9d0e1f2a |
| Item | Qty | Amount |
|---|---|---|
| Beans, 1 kg | 1 | $24 |
| Total | $24 | |
Questions? hello@northwind.test
Sent with Perly Pay
Security
Buyers pay your address. Not ours. There is no balance to withdraw.
We get a public key. It makes addresses. It can't spend a cent.
Everything paid is already in your wallet, under your keys.
We're moving onto it
Our own products move onto it during the beta — the same checkout, the same rules.
Perly App club seats
Moving to Perly Pay
Perly App yearly plan
Moving to Perly Pay
Perly Pay plans
Moving to Perly Pay
Pricing
Pay for how many sales you make, never for how big they are.
2 months free
Free
$0
25 paid invoices / mo
Starter
$24/ mo
500 paid invoices / mo
Pro
$48/ mo
5,000 paid invoices / mo
Business
$96/ mo
25,000 paid invoices / mo
0% of volume · Unlimited test mode
See pricingFAQ
Never. Buyers pay addresses made from your public key. We only watch and notify.
An email and a wallet's public key. Test mode needs neither a card nor a contract.
Ledger and Trezor connect in the browser. Any wallet that shows an xpub or zpub works too.
No. 0% of volume on every plan. You pay the flat price.
By invoice. Each period the buyer gets one with reminders and pays from their wallet.
Everything paid is already in your wallet, under your keys.
Test mode is free and unlimited. Live is free up to 25 paid invoices a month.