LayerHop Payments
Accept any token on any chain. Receive USDC.
Your customer pays with whatever they hold, on EVM chains or Solana. You receive USDC or USDT on Ethereum, Arbitrum, Base, Optimism, BNB Chain, Polygon and Solana, straight to your own wallet, verified on chain before it's marked paid. Payment links, invoices and subscriptions with no code, or an API and webhooks if you build.
How it works
Three steps. Nothing passes through LayerHop's hands.
- 1
Set what you're paid in
Choose USDC or USDT on Ethereum, Arbitrum, Base, Optimism, BNB Chain, Polygon and Solana, and your own payout address. Create a payment link, product, invoice or subscription in the dashboard, or a checkout session from your server.
- 2
Your customer pays with anything
They open the hosted page (or your embedded checkout), connect an EVM or Solana wallet and pick a token. LayerHop quotes a route that delivers at least the full amount to you, and they see exactly what they send before signing.
- 3
Verified on chain, then paid
LayerHop checks the transfer to your address on the settlement chain before marking the payment paid and sending your signed webhook. The money is already in your wallet.
Fees
The customer pays the fees. You receive at least the amount you asked for.
| Setup and monthly fee | None |
|---|---|
| Customer pays in your settlement token, on your chain | 0.50% LayerHop fee, added on top for the customer. You receive the full amount. |
| Customer pays with any other token or chain | 0.20% LayerHop fee plus the route provider's fees, included in the price the customer sees before signing. You receive at least the full amount. |
| Slippage buffer on routed payments | The customer sends a little more so the amount due is guaranteed: usually under 1%, never more than about 3%. Any extra that arrives is yours. |
| Network gas | Paid by the customer |
| Refunds | No LayerHop fee; you sign them from your own wallet |
Example: a 100.00 USDC payment on Base paid in USDC on Base costs the customer 100.50 USDC (0.50 USDC LayerHop fee) and you receive 100.00 USDC. Paid with ETH on Arbitrum instead, the LayerHop part is about 0.20 USDC, with provider fees and the buffer shown in the customer's quote.
Where you get paid
Pick one chain and stablecoin per link, product, invoice or session. Customers can pay from any chain LayerHop routes.
| Chain you're paid on | Stablecoins |
|---|---|
| Ethereum | USDC, USDT |
| Arbitrum | USDC, USDT |
| Base | USDC |
| Optimism | USDC |
| BNB Chain | USDC, USDT |
| Polygon | USDC |
| Solana | USDC, USDT |
No code needed
Everything below works from the dashboard.
Payment links
Set an amount and the chain you're paid on, then share the layerhop.com/pay link or its QR code.
Guide (opens in a new tab)Products and pay buttons
A fixed price with a /buy link and a button you paste into any website. No backend.
Guide (opens in a new tab)Invoices
Email a client line items in USDC or USDT; they pay on a hosted page and get a PDF receipt.
Guide (opens in a new tab)Subscriptions
An invoice emailed every period, with reminders and a grace period when one goes unpaid.
Guide (opens in a new tab)WooCommerce and WordPress
A free plugin with a crypto payment method for WooCommerce and a pay-button shortcode.
Guide (opens in a new tab)Hosted and embedded checkout
Send customers to the hosted page, or open it as a popup on your own site with checkout.js.
Guide (opens in a new tab)
Or build it in
Create a checkout session from your server, send the customer to its url (or open it on your page with checkout.js), and fulfil on the signed webhook.
curl -X POST https://api.layerhop.com/v1/checkout/sessions \
-H "x-api-key: $LAYERHOP_API_KEY" -H "content-type: application/json" \
-d '{
"amount": "49000000",
"settleChain": "base",
"settleToken": "USDC",
"recipient": "0xYourPayoutAddress",
"description": "Pro plan, 1 month",
"reference": "order_1042",
"successUrl": "https://shop.example.com/thanks"
}'
# → { "id": "cs_…", "url": "https://layerhop.com/pay/cs_…", "status": "open", … }49 USDC on Base, in base units (6 decimals). SDKs for TypeScript, Python, Go, Rust and more wrap the same call. Developer overview · Checkout guide · Test mode
Use cases
What merchants use it for today, with what works and what doesn't.
- Accept USDC payments, whatever your customer holds
- Crypto subscriptions for SaaS, billed in USDC or USDT
- Take crypto payments in your Telegram community or bot
- Accept SOL and Solana tokens, receive USDC on Base
- Send crypto invoices and get paid in USDC or USDT
- Accept crypto payments on WooCommerce and WordPress
- Accept crypto donations and tips in any token
Questions merchants ask
How do I accept crypto payments and receive USDC?
Sign in to the LayerHop dashboard with your wallet, choose USDC (or USDT) on Ethereum, Arbitrum, Base, Optimism, BNB Chain, Polygon or Solana and your payout address, and create a payment link, product, invoice or subscription. Customers pay with any token on any chain and the stablecoin goes straight to your wallet.
What does LayerHop charge merchants?
Nothing to set up and no monthly fee. If your customer pays in the exact token and chain you settle in, LayerHop adds a 0.50% fee on top for them (100.50 USDC for a 100.00 USDC payment) and you receive the full 100.00. If they pay with anything else, the route includes LayerHop's 0.20% fee and the provider's fees in the price they see before signing, and you still receive at least the amount due. Refunds carry no LayerHop fee.
Who pays the fees, me or my customer?
Your customer. A same-token payment adds the 0.50% on top of the amount due, and a routed payment prices LayerHop's 0.20%, the provider's fees and a small slippage buffer into what the customer sends (usually under 1%, never more than about 3% over the amount due). Either way you receive at least the amount due.
Which chains and tokens can I be paid in?
USDC on Ethereum, Arbitrum, Base, Optimism, BNB Chain, Polygon and Solana; USDT on Ethereum, Arbitrum, BNB Chain and Solana. Your customer can pay with any token LayerHop can route on EVM chains or Solana.
Is LayerHop custodial?
No. Payments go from the customer's wallet straight to your payout address through the route provider. LayerHop never holds funds or keys, and you sign refunds from your own wallet.
Can I try it without real money?
Yes. Test mode (an lh_test_ key, or the switch in the dashboard) simulates payments end to end, including webhooks, with nothing moving on chain.
Can I price in dollars or get paid out to a bank?
No. Prices are set in USDC or USDT, and payouts go to your crypto wallet. LayerHop doesn't convert to fiat.
Take your first payment in test mode today.
Sign in with your wallet, switch on test mode, and send yourself a payment link. Go live when you're ready.