Accept payments · DAI
Accept Dai payments.
Invoice in the currency you sell in, and let your customer pay in Dai. 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. MakerDAO's dollar, collateralised on-chain rather than by a bank account — the oldest stablecoin still in wide use.
DAI on 1 chain.
Your customer picks one at checkout. You choose which of them you are willing to accept.
- DAI 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.
Taking a Dai 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 DAI 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 DAI 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 DAI 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.
Dai deposit addresses