Blog
2026-09-23
No wire fees, no three-day hold, no volatility to hedge against. How to send a client an invoice, get paid in USDC straight to a wallet you control, and see the money the moment it lands — no code required.
2026-09-22
Not every charge should settle the instant payment is detected. How a per-charge, 1-of-1 Safe — released only by a signature Klappay can't produce — lets funds wait on a business condition without anyone taking custody of them.
2026-09-21
A browser-extension wallet isn't a requirement for self-custodied crypto payments. How OTP-based identity plus linked-wallet approval lets a customer pay without ever installing MetaMask.
2026-09-20
Defining a split is the easy part. Distribution is a separate, permissionless on-chain step with its own failure states — what actually happens between a confirmed charge and a recipient actually getting paid.
2026-09-19
A USDC recurring billing system is not a crypto version of Stripe Billing — a self-custodial wallet can't safely become a standing debit order just because a customer connected it once. This is how to design the authorization model, the state machine, and the events underneath it properly.
2026-09-18
A customer sends USDC, the transaction confirms on Base, and the money lands in a wallet your business controls — not in a processor balance waiting on a withdrawal. That changes more than where a number appears on a dashboard; it changes who's responsible for it.
A wallet address on a checkout page is not a payment API — it's a static request for money with no idea whether it got paid. The real work starts after the customer sends USDC: detecting the transfer, matching it to a charge, and giving your backend a status it can act on.
2026-09-17
The two hard parts of a custom crypto checkout — turning a charge into what a payment screen needs, and talking to an injected wallet — already built, audited, and shipped as one npm package. Code for every step, from the first payload to a payer with three wallet extensions installed.
A payment link is just a URL until you ask who actually receives the money and when. How to back one with a real charge, route splits at creation instead of after the fact, and build the page around it yourself.
2026-09-16
A checklist for picking a Node.js crypto payment SDK — the custody question underneath everything else, whether it models a real payment lifecycle, and why a sandbox that can't trigger an underpayment isn't actually a sandbox.
A customer's wallet says the transaction succeeded. Your checkout is still spinning. Closing that gap means picking the right channel for the right job — SSE for the screen, webhooks for the business action — and never confusing the two.
2026-09-15
USDC settles in seconds for fractions of a cent — the blockchain isn't the bottleneck. What is: custody, integration time, and missing primitives, and what closing that gap actually looks like.
2026-09-14
Direct settlement isn't proven by a wallet address on a checkout page. What changes when a merchant's own destination receives funds first, and why detecting a transfer is a different job than holding it.
A hosted checkout page is the first compromise in a payment integration. How to treat crypto payment acceptance as infrastructure you own: create a charge, present a destination, and drive order state from verified events.
2026-09-13
Splitting a charge across a seller, a platform fee, and other recipients isn't hard math — it's making the allocation deterministic, observable, and enforceable without funds ever passing through a processor-controlled account.
Testing that a charge endpoint returns 200 isn't testing a payment integration. How to build a sandbox around the real charge lifecycle — duplicate events, out-of-order delivery, expiry, underpayment — using Klappay's sandbox triggers.
2026-09-09
A crypto checkout should not ask customers to send funds to a shared wallet. Why per-charge deterministic addresses matter, and how to build charge state around them.
A webhook doesn't settle funds — it reports settlement that already happened on-chain. How the event flow works, what the payload should contain, and why signature verification and idempotency aren't optional.
2026-09-08
Custody isn't an implementation detail — it's the architecture of the financial relationship. A guide to what a non-custodial crypto payments API does, and how to evaluate one.
2026-09-07
A transaction hash isn't proof of payment. A backend checklist for verifying on-chain USDC settlement, designing event-driven fulfillment, and validating what wallets won't tell you.