Payment methods
A DebitMyData DID registration costs a fixed 25.00 USD. You pay it in one of the approved assets below, from the wallet you already use. You never have to buy DMD to pay with another approved asset.
Always get a quote first
Every payment starts with a quote (POST /v1/dids/registration-quotes). The quote states:
- the fixed price, 25.00 USD;
- the asset, the network and, for tokens, the token contract;
- the exact amount to pay in that asset;
- where to pay: a DMD address made for this quote only, or the x402 payment terms;
- how many confirmations the payment needs;
- for an asset that is not a US dollar stablecoin, the price used and when it was taken;
- when the quote expires (15 minutes after it was made);
- the terms version and the links to these policies.
Pay exactly the quoted amount, in the quoted asset, on the quoted network, before the quote expires. Never pay an amount that was not quoted. A payment in another asset or on another network is not credited and may not be recoverable.
The payment methods that are switched on right now are listed at
GET /v1/payment-options. A method can be paused at
any time, for example during maintenance or a network incident; a paused method is not
offered in new quotes.
Approved methods
| Method | Asset | Network | Token contract | Confirmations |
|---|---|---|---|---|
DebitMyData coin (native PoW chain) (dmd_pow_native) |
DMD | DebitMyData PoW (dmd:mainnet) |
native coin | 6 |
USDC via x402 on Base (x402_usdc_base) |
USDC | Base (eip155:8453) |
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
5 |
DMD, the DebitMyData coin, on the DebitMyData Proof-of-Work chain
DMD is the ticker of the DebitMyData coin, the native coin of DebitMyData's own
Proof-of-Work blockchain; its addresses start with dm1, and DebitMyData wallets show
amounts in DMD. It is not a token on Ethereum, Base or any other network, and it is
unrelated to other tokens that use the same ticker.
- Each quote has its own DMD address. Send the quoted amount to it from a DMD wallet.
- The amount in DMD comes from the DMD/USD reference price, published at
GET /v1/prices/dmd-usd. Until DMD has a market price, this reference price is the higher of DebitMyData's minimum rate of 0.001 USD per DMD and the cost of mining DMD: the electricity that the work of a block takes. While DMD is young and its mining power small, the minimum rate applies. It is recalculated every few minutes; no quote is made from a price older than 15 minutes. The quoted amount is rounded up to the next 0.00000001 DMD. - The quoted amount must arrive in full: your wallet's network fee comes on top of it.
- If you sent too little, you can send the rest to the same address before the quote expires.
- You may report your transaction with
POST /v1/payments/{payment_intent_id}/references. This only helps the gateway find it faster: every payment is checked on the chain.
USDC through x402, on Base
- You pay with an x402-compatible wallet, such as a Coinbase agentic wallet. The registration request answers 402 Payment Required with the payment terms; your wallet signs a USDC transfer of exactly the quoted amount (EIP-3009) and sends the request again with the signed payment.
- The payment is taken last, only once the DID can be issued: you prove control of your DID's controller first, so you are never charged for a DID that cannot be issued.
- The x402 facilitator submits the transfer and pays the network fee. The gateway then checks the transfer on the chain itself.
Not yet available
Wrapped DMD on Base and USDC on Solana are planned. They are not accepted until each one has passed its own review.
Inference donations
Agents and other x402 wallets can donate towards the AI inference behind DebitMyData's
agentic services at POST /v1/donations/inference. People donate on debitmydata.com with
the "Inference $" button; that stays as it is.
- No quote. You choose the amount,
amount_usd, from the minimum to the maximum listed underdonationsatGET /v1/discovery. The request answers 402 Payment Required with the x402 terms for exactly that amount. - USDC through x402, on Base. Your wallet signs a USDC transfer of that amount (1 USD = 1 USDC) to DebitMyData's inference wallet, and sends the request again with the signed payment and the same amount. The facilitator submits it and pays the network fee; the gateway checks it on the chain like any other payment.
- A signed receipt. Once the payment is settled, the answer carries a receipt signed by
DebitMyData (a verifiable credential), issued to the DID you name in
donor_did, or else to the paying wallet. If confirmations take longer, the answer gives astatus_urlwhere the receipt appears. - Sending the same signed payment again returns the same donation: it is never taken twice.
When a payment counts
A payment counts once it is settled: the gateway has seen it on the chain itself, it
pays the quoted amount, and it has the required confirmations. You can follow it at
GET /v1/payments/{payment_intent_id}. A DID is only issued after the payment is settled
and every controller named in the quote has proved control.
Payments that are too large, too small, too late or sent twice are not credited to the registration. See the refund policy for what happens to them.
Test networks
On the staging server, payments use test networks whose coins have no value: a private DebitMyData test chain and Base Sepolia. Test payments never count on the production service.
Questions
Write to info@debitmydata.com with your payment_intent_id.