Skip to main content
molnpay

Deposit addresses · USDC

USD Coin deposit addresses for your users.

Give every one of your users a permanent USD Coin address they can deposit to any time. It is computed in advance, it has no private key, and we sweep it and pay the network fee to do so. Circle's dollar stablecoin, native on most of the chains we support.

USDC on 9 chains.

Enable the ones your users need. Each gives that user their own address, and enabling a new one later gives it to the users you already have.

EthereumERC-20
BNB ChainBEP-20
PolygonERC-20
ArbitrumERC-20
BaseERC-20
OptimismERC-20
AvalancheERC-20
zkSyncERC-20
SolanaSPL
USDC on Ethereum
Gas here is the highest of any chain on this list, so a payment has to clear a minimum amount to be worth collecting. The checkout shows that minimum to your payer before they choose Ethereum, and every other chain here is cheaper.
USDC on BNB Chain
USDT and USDC have 18 decimals on BNB Chain, where they have 6 almost everywhere else. Read decimals from the API rather than writing 6 into your code — getting it wrong is a silent error of twelve orders of magnitude.

Issuing a USD Coin address.

  1. Create the customer

    One POST with your own user id as the reference. This is the record everything else hangs off.

  2. Ask for an address per chain

    One per (customer, chain), and it does not change. The address is computed in advance from the customer's salt, so the same customer has the same address on every EVM chain — and you can show it again tomorrow without calling us.

  3. Credit on deposit.confirmed

    We watch every block, sweep what lands, and pay the network fee to do it. Sweeps are visible to you and read-only: they never change what you are owed.

POST /v1/customers
curl https://api.molnpay.com/v1/customers \
  -H "Authorization: Bearer $MOLNPAY_SECRET_KEY" \
  -H "Idempotency-Key: user_4471" \
  -d reference_id="user_4471"

What you do not have to do.

  • Hold a USDC wallet, or guard a seed phrase for one. Every address is a contract with no key.
  • Keep gas on hand. Our operator wallet funds the sweep on every chain USDC settles on.
  • Re-issue an address. One per user, per chain, and it does not change.
  • Run a watcher that must never miss a block, or reconcile a reorg by hand.

Taking USDC payments instead?

Same API, same keys, same balance — the difference is whether the address belongs to an invoice or to one of your users.

Accept USD Coin payments

Addresses for another asset