# Monad EIP-681 payment links, step by step | Cosmos Pay

URL: https://payments.cosmospay.lat/learn/accept-usdc-on-monad

> Accept USDC on Monad with an EIP-681 link and QR code: the deposit address made for each payment, the amount it needs, testing and confirmation.

## How to accept USDC on Monad with EIP-681 links

With Cosmos Pay, a payment link on Monad is an EIP-681 request to a deposit address made for that payment: your customer scans its QR code with an EVM wallet and approves the USDC transfer. The deposit address can only forward the money to your address, and Cosmos Pay marks the link as paid once it does. Every Monad link needs an amount.

Updated November 2, 2026 · By Cosmos Pay

### What an EIP-681 link holds

EIP-681 is the Ethereum standard for payment requests that EVM wallets read: an ethereum: link, or its QR code, with the token, the network and the amount. Monad’s main network has chain id 143, and its Testnet 10143.

The link pays a deposit address made for that payment, not your address directly. Its code can only send what it receives to your address, so Cosmos Pay holds no key that could move the money anywhere else.

- [The EIP-681 standard (Ethereum)](https://eips.ethereum.org/EIPS/eip-681)
- [Monad payments](https://payments.cosmospay.lat/monad)

### How the deposit address pays you

- Cosmos Pay watches the deposit address. Once it holds at least the amount, a relay forwards the money to your address, and that forward settles the link.
- The relay may take a fee from the payment for forwarding it. The checkout shows it, and the API reports it on the payment as networkFee.
- More than the amount is forwarded to you in full. Less than the amount does not settle the link.
- Your customer’s wallet pays the Monad network fee for its own transfer, in MON.

### Accept your first USDC payment on Monad

1. **Switch to Sandbox**: Sign in to the dashboard and choose Sandbox at the top. Links you create there run on Monad Testnet, which has no USDC preset: charge in MON, or name a token by its contract.
2. **Add your Monad address**: In your organization’s settings, add the EVM address that will receive the money on Monad and sign what the dashboard asks for, which proves it is yours.
3. **Create the link**: In Payments, choose Create payment link, pick Monad, enter the amount (it is required) and the asset, then your address.
4. **Pay it from a wallet**: Open the checkout page and scan its QR code with an EVM wallet that reads EIP-681 links, on the same network. Approve the transfer, and the checkout turns to Paid once the payment is forwarded to you.
5. **Confirm it on your server**: Add a webhook endpoint in the dashboard. When the payment is confirmed, Cosmos Pay sends PAYMENT_INTENT_SUCCEEDED, signed with HMAC-SHA256. Deliver the order when it arrives.
6. **Switch to Production**: Choose Production and create a live API key (it starts with prod_). Links now run on Monad’s main network, where USDC has its own preset.

- [How to confirm a payment on your server](https://payments.cosmospay.lat/learn/confirm-stablecoin-payments)
- [API keys](https://dev.cosmospay.lat/docs/api-keys/)

### Create the link from your server

Call POST /v1/payment-intents/pay with chain set to monad, your address as the destination, the amount and, for USDC, the asset code with its contract as the issuer, or pass chain: 'monad' to client.paymentIntents.createPay in the TypeScript SDK (version 2.2 or later). The response carries the link (its uri starts with ethereum:) and its QR code.

Monad links take no message. To confirm a payment before the forward lands, send your customer’s transaction hash (0x and 64 hexadecimal characters) to POST /v1/payment-intents/:id/validate.

- [Payment intents API](https://dev.cosmospay.lat/docs/api/payment-intents/)
- [Payment intents in the SDK](https://dev.cosmospay.lat/docs/sdk/server/payment-intents/)

### Good to know

- A link is open for a limited time. A full payment that still arrives afterwards is forwarded to you and marks the link as paid.
- Another payment to the same deposit address is forwarded to your address too.
- With your own fee on the payment, the deposit address splits it: your fee to your fee wallet and the rest to you.
- Each payment pays your plan’s rate, the same as on every network.

- [Pricing and fee calculator](https://payments.cosmospay.lat/fees)
- [Stellar vs Solana vs Monad](https://payments.cosmospay.lat/learn/stellar-vs-solana-vs-monad)

### Questions and answers.

Payments by network: [Stellar payments](https://payments.cosmospay.lat/stellar), [Solana payments](https://payments.cosmospay.lat/solana), [Monad payments](https://payments.cosmospay.lat/monad)

#### Why does the link pay a deposit address and not my address?

Each payment gets its own address, so Cosmos Pay can tell payments apart without a memo. The address can only forward what it receives to your address.

#### Who pays the fees on Monad?

Your customer’s wallet pays the network fee for its transfer. The relay’s fee for forwarding, when there is one, is taken from the payment and shown on the checkout.

#### Can my customer choose the amount?

No. A Monad link needs an amount. For open amounts, use a Stellar or Solana link.

#### Can I test on Monad?

Yes. In Sandbox and with test keys (dv_), links run on Monad Testnet. It has no USDC preset, so charge in MON or name a token by its contract.

### More guides

[See every guide](https://payments.cosmospay.lat/learn)

#### [How to accept USDC on Stellar with SEP-7 links](https://payments.cosmospay.lat/learn/accept-usdc-on-stellar)

Charge USDC on Stellar with a SEP-7 link: prepare your account, test on Testnet and see each payment confirmed.

#### [How to accept USDC with Solana Pay links](https://payments.cosmospay.lat/learn/accept-usdc-with-solana-pay)

Create a Solana Pay link for USDC, test it on Devnet, and see each payment confirmed on your server.

#### [How to confirm a stablecoin payment on your server](https://payments.cosmospay.lat/learn/confirm-stablecoin-payments)

Deliver orders from a signed webhook, not from your customer’s page: verify it, answer fast and skip duplicates.

### Start accepting stablecoins.

Create a free account, mint a test key and send your first payment link today.

[Create a payment link](https://dev.cosmospay.lat/login?next=%2Fdashboard%3Fview%3Dpayments)

#### Write to us

Questions about plans, integration or protected payments? Tell us and we will reply by email.

[organization@cosmospay.lat](mailto:organization@cosmospay.lat)
