Accept payments · USD1
Accept World Liberty Financial USD payments.
Invoice in the currency you sell in, and let your customer pay in World Liberty Financial USD. We give the invoice a keyless address on the chain they choose, watch it, and send you a signed webhook when the payment is final. A treasury-backed dollar deployed on Ethereum, BNB Chain, Solana and Tron — the same four chains most volume already uses.
USD1 on 4 chains.
Your customer picks one at checkout. You choose which of them you are willing to accept.
- USD1 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.
- USD1 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.
- USD1 on Tron
- There is no USDC on Tron — Circle ended its TRC-20 issuance in February 2024. USDT is what everyone uses here in any case, and it is the most common way money moves on this list.
Taking a World Liberty Financial USD payment.
Create the invoice
One POST with an amount, a pricing currency and your own reference. You get back a checkout URL, one payment address per chain, and a locked amount in every coin you accept.
They pay, at a rate that stays honest
Your customer is never asked to commit to a chain first — one address serves every EVM chain, so whatever arrives is attributable. Stablecoins are quoted once. A volatile coin is re-quoted every two minutes, and the figure it replaces is still honoured for five, so nobody who did as they were told is told they underpaid.
You get a signed webhook
HMAC-SHA256, retried for about 46 hours, replayable from the dashboard. The payment is credited to your balance per asset.
curl https://api.molnpay.com/v1/invoices \ -H "Authorization: Bearer $MOLNPAY_SECRET_KEY" \ -H "Idempotency-Key: order_8812" \ -d amount="49.90" \ -d currency="USD" \ -d reference_id="order_8812"
What you do not have to do.
- Hold a USD1 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 USD1 settles on.
- Ask your customer to make an account. The hosted checkout needs nothing from them but a payment.
- Run a watcher that must never miss a block, or reconcile a reorg by hand.
Holding USD1 for your users instead?
Same API, same keys, same balance — the difference is whether the address belongs to an invoice or to one of your users.
World Liberty Financial USD deposit addresses