{"openapi":"3.1.0","info":{"title":"DebitMyData Agent Gateway","description":"Public integration surface for agents: discovery, payment options, quotes, payment verification, controller proofs and DebitMyData DID issuance with signed credentials. Payment options appear only once their payment rail is enabled. AI agents can use the same steps through the MCP server at /mcp. Terms, privacy, payment, refund, DID and security policies: [/policies](/policies). DMD is the ticker of the DebitMyData coin, the native coin of the DebitMyData Proof-of-Work chain (addresses start with dm1); it is unrelated to other tokens that use the same ticker.\n\n### Register a DID from this page\n\n**Easiest: [Get a DID](/get-did)** takes you through these steps: you pay and sign in your own wallet.\n\n**Want to see the whole flow first?** [Try it with test coins on the guided staging page](https://staging-api.debitmydata.io/docs): it runs every step for you.\n\nOn this server every step is real: quotes, payments and DIDs. AI agents usually do these steps themselves, through this API or the MCP server at `/mcp`. Paying and signing happen outside this page, in the agent's own wallet and tools. **Never paste a private key or a wallet's recovery phrase into this page: the gateway never asks for one.**\n\nOn this page, each step's endpoint below is marked **Step 1** to **Step 8**. The panel at the bottom right shows the next step with a **Go** button that opens it, and keeps each value the answers give you (**Values from your responses**), with a **Copy** button and the step it goes into.\n\n1. **discovery** › [GET /v1/payment-options](#/discovery/payment_options_v1_payment_options_get): how you can pay right now.\n2. **registration** › [POST /v1/dids/registration-quotes](#/registration/create_quote_v1_dids_registration_quotes_post): your agent's `display_name`, its `controller_public_key` (or `controller_wallet_address`), and how it pays in `preferred_payment_option`. Keep `registration_intent_id` and `payment_intent_id`.\n3. **Pay, outside this page.** DMD: from your wallet, send exactly `selected_payment_option.amount` to `selected_payment_option.recipient` within 15 minutes of step 2. USDC: nothing yet, the payment is made in step 8.\n4. **payments** › [GET /v1/payments/{payment_intent_id}](#/payments/payment_status_v1_payments__payment_intent_id__get): DMD: your `payment_intent_id`. Once the payment has the confirmations it needs (`required_confirmations`), `status` is `settled`.\n5. **registration** › [POST /v1/dids/registrations/{id}/controller-challenges](#/registration/create_challenge_v1_dids_registrations__registration_intent_id__controller_challenges_post): your `registration_intent_id`. Keep `challenge_id` and `message`.\n6. **Sign `message`, outside this page,** with the agent's key (`signature_algorithm` and `signature_encoding` in the answer say how) or its wallet (`personal_sign`), within 5 minutes of step 5.\n7. **registration** › [POST /v1/dids/registrations/{id}/controller-proofs](#/registration/submit_proof_v1_dids_registrations__registration_intent_id__controller_proofs_post): your `registration_intent_id`, `challenge_id` and the `signature`. The status is `verified`.\n8. **registration** › [POST /v1/dids/registrations](#/registration/register_v1_dids_registrations_post): your `registration_intent_id`. DMD: you get the DID, its signed credential and the `dmd_did_holder` entitlement. USDC: the first answer is `402` with the payment terms; an x402 client (the agent's wallet) signs them and sends the same request again with the `PAYMENT-SIGNATURE` header.\n9. Open the `did_document_url` from step 8 in your browser.\n\n`GET /v1/dids/registrations/{id}` shows at any time what a registration still needs (`blockers`).","version":"0.30.1"},"paths":{"/healthz":{"get":{"tags":["health"],"summary":"Liveness probe","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Healthz Healthz Get"}}}}}}},"/readyz":{"get":{"tags":["health"],"summary":"Readiness probe","operationId":"readyz_readyz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/discovery":{"get":{"tags":["discovery"],"summary":"Describe DebitMyData services","operationId":"discovery_v1_discovery_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Discovery"}}}}}}},"/v1/payment-options":{"get":{"tags":["discovery"],"summary":"Payment options currently enabled for a service","operationId":"payment_options_v1_payment_options_get","parameters":[{"name":"service","in":"query","required":false,"schema":{"type":"string","maxLength":64,"description":"A service or donation ID from /v1/discovery","default":"did_registration","title":"Service"},"description":"A service or donation ID from /v1/discovery"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentOptions"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/prices/dmd-usd":{"get":{"tags":["discovery"],"summary":"DMD/USD reference price (DMD: the DebitMyData coin) and how it was computed","operationId":"dmd_price_v1_prices_dmd_usd_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DmdPrice"}}}},"503":{"description":"No price has been computed yet."}}}},"/v1/dids/registration-quotes":{"post":{"tags":["registration"],"summary":"Get a time-limited quote for a DebitMyData DID registration","operationId":"create_quote_v1_dids_registration_quotes_post","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9._:-]{16,128}$"},{"type":"null"}],"description":"Optional random key (e.g. a UUID). Retrying with the same key returns the original quote instead of creating a new one.","title":"Idempotency-Key"},"description":"Optional random key (e.g. a UUID). Retrying with the same key returns the original quote instead of creating a new one."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuoteRequest"},"examples":{"dmd":{"summary":"Pay in DMD, the DebitMyData coin (native PoW chain)","value":{"controller_public_key":"ed25519:z6Mk<your agent public key>","display_name":"TestAgent-01","participant_type":"autonomous_agent","preferred_payment_option":"dmd_pow_native"}},"x402":{"summary":"Pay in USDC through x402 (Base)","value":{"controller_public_key":"ed25519:z6Mk<your agent public key>","display_name":"TestAgent-01","participant_type":"autonomous_agent","preferred_payment_option":"x402_usdc_base"}},"wallet":{"summary":"A wallet as the controller, paying in USDC through x402 (Base)","value":{"controller_wallet_address":"0x<your wallet address>","display_name":"TestAgent-01","participant_type":"autonomous_agent","preferred_payment_option":"x402_usdc_base"}}}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistrationQuote"}}}},"409":{"description":"The chosen payment option is not currently available."},"422":{"description":"Invalid request, unknown payment option or reused Idempotency-Key."},"429":{"description":"This controller key already has the maximum of open quotes."},"503":{"description":"No approved price available, or the service is temporarily down."}}}},"/v1/payments/{payment_intent_id}":{"get":{"tags":["payments"],"summary":"Payment status: detection, confirmations, settlement, refunds","operationId":"payment_status_v1_payments__payment_intent_id__get","parameters":[{"name":"payment_intent_id","in":"path","required":true,"schema":{"type":"string","pattern":"^dmd_payment_intent_[0-9A-HJKMNP-TV-Z]{26}$","description":"`payment_intent_id` from the quote (it starts with `dmd_payment_intent_`).","title":"Payment Intent Id"},"description":"`payment_intent_id` from the quote (it starts with `dmd_payment_intent_`)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentStatusResponse"}}}},"404":{"description":"Unknown payment intent."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/payments/{payment_intent_id}/references":{"post":{"tags":["payments"],"summary":"Tell the gateway the transaction reference of a broadcast payment (a hint only)","operationId":"submit_payment_reference_v1_payments__payment_intent_id__references_post","parameters":[{"name":"payment_intent_id","in":"path","required":true,"schema":{"type":"string","pattern":"^dmd_payment_intent_[0-9A-HJKMNP-TV-Z]{26}$","description":"`payment_intent_id` from the quote (it starts with `dmd_payment_intent_`).","title":"Payment Intent Id"},"description":"`payment_intent_id` from the quote (it starts with `dmd_payment_intent_`)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReferenceRequest"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReferenceResponse"}}}},"200":{"description":"This reference was already recorded."},"404":{"description":"Unknown payment intent."},"409":{"description":"The payment is no longer open."},"422":{"description":"Not a valid reference for the payment's network."},"429":{"description":"Too many references for this payment."}}}},"/v1/dids/registrations/{registration_intent_id}/controller-challenges":{"post":{"tags":["registration"],"summary":"Get a one-time message to sign with the controller key or wallet","operationId":"create_challenge_v1_dids_registrations__registration_intent_id__controller_challenges_post","parameters":[{"name":"registration_intent_id","in":"path","required":true,"schema":{"type":"string","pattern":"^dmd_did_intent_[0-9A-HJKMNP-TV-Z]{26}$","description":"`registration_intent_id` from the quote (it starts with `dmd_did_intent_`).","title":"Registration Intent Id"},"description":"`registration_intent_id` from the quote (it starts with `dmd_did_intent_`)."}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ChallengeRequest"},{"type":"null"}],"title":"Body"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChallengeResponse"}}}},"404":{"description":"Unknown registration intent."},"409":{"description":"Registration already issued, closed, or has no usable key."},"429":{"description":"Too many open challenges."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/dids/registrations/{registration_intent_id}/controller-proofs":{"post":{"tags":["registration"],"summary":"Prove control of the controller key or wallet by returning the signed challenge","operationId":"submit_proof_v1_dids_registrations__registration_intent_id__controller_proofs_post","parameters":[{"name":"registration_intent_id","in":"path","required":true,"schema":{"type":"string","pattern":"^dmd_did_intent_[0-9A-HJKMNP-TV-Z]{26}$","description":"`registration_intent_id` from the quote (it starts with `dmd_did_intent_`).","title":"Registration Intent Id"},"description":"`registration_intent_id` from the quote (it starts with `dmd_did_intent_`)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProofRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProofResponse"}}}},"404":{"description":"Unknown registration or challenge."},"409":{"description":"Challenge already answered, or registration closed."},"410":{"description":"Challenge expired."},"422":{"description":"Wrong or malformed signature (a wrong one uses up the challenge), or a smart wallet on a network this gateway cannot ask."},"503":{"description":"A smart wallet's network cannot be asked right now (try again)."}}}},"/v1/dids/registrations":{"post":{"tags":["registration"],"summary":"Issue the DID once the payment is settled and the controller proof is verified","description":"For a quote paid in DMD, call this once the payment is settled and the controller proof verified. For an x402 quote (USDC on Base), prove the controller first, then call this: it answers **402** with a `PAYMENT-REQUIRED` header (x402 version 2). Call it again with your signed payment in the `PAYMENT-SIGNATURE` header; the payment is settled, checked on chain, and the DID is issued in the same answer (`PAYMENT-RESPONSE` header), or 202 if confirmations take longer. A call without `registration_intent_id` answers 402 with the payment terms only (for x402 tools that probe the route); it cannot be paid.","operationId":"register_v1_dids_registrations_post","parameters":[{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"x402 only: the base64 PaymentPayload answering the 402 (a long value starting with eyJ; on staging, payment_signature from POST /v1/staging/test-payments). Not the controller-proof signature.","title":"Payment-Signature"},"description":"x402 only: the base64 PaymentPayload answering the 402 (a long value starting with eyJ; on staging, payment_signature from POST /v1/staging/test-payments). Not the controller-proof signature."}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RegistrationRequest"},{"type":"null"}],"title":"Body"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssuedRegistration"}}}},"200":{"description":"Already issued: the same DID and credential are returned."},"202":{"description":"x402: payment received and confirming; call again shortly."},"400":{"description":"x402: the PAYMENT-SIGNATURE header is not a valid payment."},"402":{"description":"x402: payment required, or the payment was refused."},"404":{"description":"Unknown registration intent."},"409":{"description":"Not ready: the response lists what is still missing."},"503":{"description":"DID issuance or the payment service is not available."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/dids/registrations/{registration_intent_id}":{"get":{"tags":["registration"],"summary":"Registration progress: payment, controller proof, what is still missing","operationId":"registration_status_v1_dids_registrations__registration_intent_id__get","parameters":[{"name":"registration_intent_id","in":"path","required":true,"schema":{"type":"string","pattern":"^dmd_did_intent_[0-9A-HJKMNP-TV-Z]{26}$","description":"`registration_intent_id` from the quote (it starts with `dmd_did_intent_`).","title":"Registration Intent Id"},"description":"`registration_intent_id` from the quote (it starts with `dmd_did_intent_`)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistrationStatus"}}}},"404":{"description":"Unknown registration intent."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/donations/{name}":{"post":{"tags":["donations"],"summary":"Donate (inference donation), paid with x402","description":"A voluntary donation towards the AI inference behind DebitMyData's agentic services, in an amount you choose (`amount_usd`), paid in USDC on Base through x402. Call it with the amount: it answers **402** with a `PAYMENT-REQUIRED` header. Call it again with the same body and your signed payment in the `PAYMENT-SIGNATURE` header: the payment is settled, checked on chain, and the answer carries a receipt signed by DebitMyData (or 202 while confirmations take longer; then read `status_url`). Sending the same signed payment again returns the same donation. A call without `amount_usd` answers 402 with example terms (for x402 tools) and cannot be paid.","operationId":"make_donation_v1_donations__name__post","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,40}$","title":"Name"}},{"name":"PAYMENT-SIGNATURE","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The base64 x402 PaymentPayload answering the 402.","title":"Payment-Signature"},"description":"The base64 x402 PaymentPayload answering the 402."}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DonationRequest"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"This signed payment was already received: the same donation.","content":{"application/json":{"schema":{}}}},"201":{"description":"Paid and settled: the donation and its signed receipt."},"202":{"description":"Payment received and confirming; read status_url shortly."},"400":{"description":"The PAYMENT-SIGNATURE header is not a valid x402 payment."},"402":{"description":"Payment required, or the payment was refused."},"404":{"description":"Unknown donation."},"409":{"description":"The authorization was already used, or the payment failed."},"422":{"description":"amount_usd is outside the accepted range."},"503":{"description":"Donations are not open on this gateway yet."}}}},"/v1/donations/{purchase_id}":{"get":{"tags":["donations"],"summary":"A donation: payment status and, once settled, its signed receipt","operationId":"get_donation_v1_donations__purchase_id__get","parameters":[{"name":"purchase_id","in":"path","required":true,"schema":{"type":"string","pattern":"^dmd_purchase_[0-9A-HJKMNP-TV-Z]{26}$","description":"purchase_id (starts with dmd_purchase_)","title":"Purchase Id"},"description":"purchase_id (starts with dmd_purchase_)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Unknown donation."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/products":{"get":{"tags":["products"],"summary":"Products an agent can buy for its DID (such as the BottyBotty tiers)","operationId":"products_v1_products_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ProductInfo"},"type":"array","title":"Response Products V1 Products Get"}}}}}}},"/v1/products/{product}/quotes":{"post":{"tags":["products"],"summary":"Quote a product for an active DID: the amount and where to pay it","operationId":"quote_v1_products__product__quotes_post","parameters":[{"name":"product","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,40}$","description":"e.g. bottybotty-entry","title":"Product"},"description":"e.g. bottybotty-entry"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductQuoteRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductQuote"}}}},"404":{"description":"Unknown product or DID."},"409":{"description":"The DID is suspended or revoked."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/products/purchases/{purchase_id}":{"get":{"tags":["products"],"summary":"A product purchase: payment progress, next action, and its receipt once completed","operationId":"status_v1_products_purchases__purchase_id__get","parameters":[{"name":"purchase_id","in":"path","required":true,"schema":{"type":"string","pattern":"^dmd_purchase_[0-9A-HJKMNP-TV-Z]{26}$","title":"Purchase Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PurchaseState"}}}},"404":{"description":"Unknown product purchase."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/products/purchases/{purchase_id}/complete":{"post":{"tags":["products"],"summary":"Once paid: issue the signed receipt and the entitlement on the DID (idempotent)","operationId":"complete_v1_products_purchases__purchase_id__complete_post","parameters":[{"name":"purchase_id","in":"path","required":true,"schema":{"type":"string","pattern":"^dmd_purchase_[0-9A-HJKMNP-TV-Z]{26}$","title":"Purchase Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PurchaseState"}}}},"404":{"description":"Unknown product purchase."},"409":{"description":"Not paid yet, or the DID is no longer active."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/dids/{identity_id}":{"get":{"tags":["identities"],"summary":"An issued DebitMyData identity","operationId":"identity_v1_dids__identity_id__get","parameters":[{"name":"identity_id","in":"path","required":true,"schema":{"type":"string","pattern":"^(dmd_identity_[0-9A-HJKMNP-TV-Z]{26}|did:web:[^/?#\\s]{1,253}:agents:[0-9A-HJKMNP-TV-Z]{26})$","description":"The identity ID (`dmd_identity_...`) or the DID itself (`did:web:api.debitmydata.io:agents:...`).","title":"Identity Id"},"description":"The identity ID (`dmd_identity_...`) or the DID itself (`did:web:api.debitmydata.io:agents:...`)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityRecord"}}}},"404":{"description":"Unknown identity."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/credentials/{credential_id}":{"get":{"tags":["identities"],"summary":"A signed registration credential (verify it with the issuer DID document)","operationId":"credential_v1_credentials__credential_id__get","parameters":[{"name":"credential_id","in":"path","required":true,"schema":{"type":"string","pattern":"^dmd_credential_[0-9A-HJKMNP-TV-Z]{26}$","title":"Credential Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialRecord"}}}},"404":{"description":"Unknown credential."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/entitlements/{identity_id}":{"get":{"tags":["identities"],"summary":"Entitlements of a DID, such as its BottyBotty tier (and any end of period)","operationId":"entitlements_v1_entitlements__identity_id__get","parameters":[{"name":"identity_id","in":"path","required":true,"schema":{"type":"string","pattern":"^(dmd_identity_[0-9A-HJKMNP-TV-Z]{26}|did:web:[^/?#\\s]{1,253}:agents:[0-9A-HJKMNP-TV-Z]{26})$","description":"The identity ID (`dmd_identity_...`) or the DID itself (`did:web:api.debitmydata.io:agents:...`).","title":"Identity Id"},"description":"The identity ID (`dmd_identity_...`) or the DID itself (`did:web:api.debitmydata.io:agents:...`)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Entitlements"}}}},"404":{"description":"Unknown identity."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/agents/{suffix}/did.json":{"get":{"tags":["identities"],"summary":"DID document of an issued identity (did:web)","operationId":"agent_document_agents__suffix__did_json_get","parameters":[{"name":"suffix","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9A-HJKMNP-TV-Z]{26}$","title":"Suffix"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Unknown DID."},"410":{"description":"DID deactivated."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/.well-known/did.json":{"get":{"tags":["identities"],"summary":"Issuer DID document: the public key that signs DebitMyData credentials","operationId":"issuer_document__well_known_did_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Credential issuance is not enabled."}}}},"/v1/policies":{"get":{"tags":["discovery"],"summary":"The policies that apply to registrations: terms, privacy, payments, refunds, DIDs","operationId":"policy_list_v1_policies_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyList"}}}}}}}},"components":{"schemas":{"AmountRange":{"properties":{"currency":{"type":"string","title":"Currency"},"minimum":{"type":"string","title":"Minimum"},"maximum":{"type":"string","title":"Maximum"}},"type":"object","required":["currency","minimum","maximum"],"title":"AmountRange"},"ChallengeRequest":{"properties":{"controller_type":{"anyOf":[{"type":"string","pattern":"^(ed25519|eip155)$"},{"type":"null"}],"title":"Controller Type","description":"Usually left out: the gateway then picks the quote's only controller, or the next one still to prove. To choose: ed25519 for the agent's public key (controller_public_key), eip155 for its wallet (controller_wallet_address)."}},"additionalProperties":false,"type":"object","title":"ChallengeRequest","examples":[{}]},"ChallengeResponse":{"properties":{"challenge_id":{"type":"string","title":"Challenge Id"},"registration_intent_id":{"type":"string","title":"Registration Intent Id"},"controller":{"type":"string","title":"Controller"},"message":{"type":"string","title":"Message"},"signature_algorithm":{"type":"string","title":"Signature Algorithm"},"signature_encoding":{"type":"string","title":"Signature Encoding"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"proof_url":{"type":"string","title":"Proof Url"}},"type":"object","required":["challenge_id","registration_intent_id","controller","message","signature_algorithm","signature_encoding","expires_at","proof_url"],"title":"ChallengeResponse"},"ControllerStatus":{"properties":{"public_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Key"},"wallet_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wallet Address"},"wallet_network":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wallet Network"},"proof_status":{"type":"string","title":"Proof Status"},"still_to_prove":{"items":{"type":"string"},"type":"array","title":"Still To Prove","description":"Controllers without a verified proof yet: ed25519 and/or eip155."}},"type":"object","required":["public_key","wallet_address","proof_status"],"title":"ControllerStatus"},"CredentialIssuer":{"properties":{"did":{"type":"string","title":"Did"},"did_document_url":{"type":"string","title":"Did Document Url"}},"type":"object","required":["did","did_document_url"],"title":"CredentialIssuer"},"CredentialRecord":{"properties":{"credential_id":{"type":"string","title":"Credential Id"},"status":{"type":"string","title":"Status","description":"active, suspended (with its DID) or revoked"},"format":{"type":"string","title":"Format"},"issued_at":{"type":"string","format":"date-time","title":"Issued At"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"credential":{"additionalProperties":true,"type":"object","title":"Credential"}},"type":"object","required":["credential_id","status","format","issued_at","revoked_at","credential"],"title":"CredentialRecord"},"Discovery":{"properties":{"service":{"type":"string","title":"Service"},"version":{"type":"string","title":"Version"},"offers":{"items":{"$ref":"#/components/schemas/Offer"},"type":"array","title":"Offers"},"donations":{"items":{"$ref":"#/components/schemas/DonationOffer"},"type":"array","title":"Donations"},"mcp_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mcp Url"},"credential_issuer":{"anyOf":[{"$ref":"#/components/schemas/CredentialIssuer"},{"type":"null"}]},"policy_urls":{"additionalProperties":{"type":"string"},"type":"object","title":"Policy Urls"},"keywords":{"items":{"type":"string"},"type":"array","title":"Keywords"}},"type":"object","required":["service","version","offers","donations","mcp_url","credential_issuer","policy_urls","keywords"],"title":"Discovery"},"DmdPrice":{"properties":{"asset":{"type":"string","title":"Asset"},"network":{"type":"string","title":"Network"},"usd_per_unit":{"type":"string","title":"Usd Per Unit"},"units_per_usd":{"type":"string","title":"Units Per Usd"},"method":{"type":"string","title":"Method"},"price_from":{"type":"string","title":"Price From","description":"mining_cost, or minimum when the minimum rate is higher than the mining cost."},"mining_cost_usd_per_unit":{"type":"string","title":"Mining Cost Usd Per Unit","description":"What it costs to mine 1 DMD (DebitMyData coin)."},"minimum_usd_per_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Minimum Usd Per Unit","description":"DebitMyData's minimum rate until DMD has a market price; null if none."},"minimum_approved_on":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Minimum Approved On"},"observed_at":{"type":"string","format":"date-time","title":"Observed At"},"age_seconds":{"type":"integer","title":"Age Seconds"},"fresh":{"type":"boolean","title":"Fresh","description":"Recent enough to be used in a quote."},"used_for_quotes":{"type":"boolean","title":"Used For Quotes","description":"Whether DMD quotes on this server use it."},"parameters_review_overdue":{"type":"boolean","title":"Parameters Review Overdue","description":"The approved electricity price and machine efficiency are past their quarterly review."},"note":{"type":"string","title":"Note"},"inputs":{"additionalProperties":true,"type":"object","title":"Inputs"}},"type":"object","required":["asset","network","usd_per_unit","units_per_usd","method","price_from","mining_cost_usd_per_unit","minimum_usd_per_unit","observed_at","age_seconds","fresh","used_for_quotes","parameters_review_overdue","note","inputs"],"title":"DmdPrice"},"DonationOffer":{"properties":{"id":{"type":"string","title":"Id"},"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"method":{"type":"string","title":"Method"},"path":{"type":"string","title":"Path"},"resource":{"type":"string","title":"Resource"},"amount":{"$ref":"#/components/schemas/AmountRange"},"accepting_payments":{"type":"boolean","title":"Accepting Payments"},"payment_options_url":{"type":"string","title":"Payment Options Url"},"endpoints":{"additionalProperties":{"$ref":"#/components/schemas/Endpoint"},"type":"object","title":"Endpoints"}},"type":"object","required":["id","title","description","method","path","resource","amount","accepting_payments","payment_options_url","endpoints"],"title":"DonationOffer","description":"A donation: the donor chooses the amount within the range, and pays in one call."},"DonationRequest":{"properties":{"amount_usd":{"anyOf":[{"type":"string","pattern":"^(0|[1-9][0-9]{0,8})(\\.[0-9]{1,2})?$"},{"type":"null"}],"title":"Amount Usd","description":"The donation in US dollars, e.g. \"5.00\" (paid as the same amount of USDC)."},"donor_name":{"anyOf":[{"type":"string","maxLength":80,"minLength":1},{"type":"null"}],"title":"Donor Name","description":"Optional, shown in the receipt."},"donor_did":{"anyOf":[{"type":"string","pattern":"^did:[a-z0-9]+:[A-Za-z0-9._:%-]{1,200}$"},{"type":"null"}],"title":"Donor Did","description":"Optional DID of the donor; the receipt is issued to it. Otherwise the receipt names the paying wallet."}},"additionalProperties":false,"type":"object","title":"DonationRequest","examples":[{"amount_usd":"5.00","donor_name":"ResearchClaw-01"}]},"Endpoint":{"properties":{"method":{"type":"string","title":"Method"},"url":{"type":"string","title":"Url"},"available":{"type":"boolean","title":"Available"}},"type":"object","required":["method","url","available"],"title":"Endpoint"},"EntitlementItem":{"properties":{"entitlement":{"type":"string","title":"Entitlement"},"status":{"type":"string","title":"Status","description":"active, expired, suspended or revoked"},"granted_at":{"type":"string","format":"date-time","title":"Granted At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At","description":"End of the period bought (null: no end)."},"source_credential_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Credential Id"}},"type":"object","required":["entitlement","status","granted_at","source_credential_id"],"title":"EntitlementItem"},"Entitlements":{"properties":{"subject_id":{"type":"string","title":"Subject Id"},"did":{"type":"string","title":"Did"},"entitlements":{"items":{"$ref":"#/components/schemas/EntitlementItem"},"type":"array","title":"Entitlements"}},"type":"object","required":["subject_id","did","entitlements"],"title":"Entitlements"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IdentityRecord":{"properties":{"identity_id":{"type":"string","title":"Identity Id"},"did":{"type":"string","title":"Did"},"status":{"type":"string","title":"Status"},"display_name":{"type":"string","title":"Display Name"},"participant_type":{"type":"string","title":"Participant Type"},"controller_public_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Controller Public Key"},"controller_wallet":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Controller Wallet","description":"The controller wallet, as `eip155:<chain id>:0x...`"},"did_document_url":{"type":"string","title":"Did Document Url"},"registration_intent_id":{"type":"string","title":"Registration Intent Id"},"credentials":{"items":{"type":"string"},"type":"array","title":"Credentials"},"entitlements":{"items":{"type":"string"},"type":"array","title":"Entitlements"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["identity_id","did","status","display_name","participant_type","controller_public_key","did_document_url","registration_intent_id","credentials","entitlements","created_at"],"title":"IdentityRecord"},"IssuedRegistration":{"properties":{"registration_intent_id":{"type":"string","title":"Registration Intent Id"},"status":{"type":"string","title":"Status"},"identity_id":{"type":"string","title":"Identity Id"},"did":{"type":"string","title":"Did"},"did_status":{"type":"string","title":"Did Status","description":"The DID's status now: active, suspended or revoked."},"did_document_url":{"type":"string","title":"Did Document Url"},"identity_url":{"type":"string","title":"Identity Url"},"credential_id":{"type":"string","title":"Credential Id"},"credential_url":{"type":"string","title":"Credential Url"},"credential":{"additionalProperties":true,"type":"object","title":"Credential"},"entitlements":{"items":{"type":"string"},"type":"array","title":"Entitlements"},"issued_at":{"type":"string","format":"date-time","title":"Issued At"},"payment_response":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payment Response","description":"x402 payments: the settlement (also in the PAYMENT-RESPONSE header)."}},"type":"object","required":["registration_intent_id","status","identity_id","did","did_status","did_document_url","identity_url","credential_id","credential_url","credential","entitlements","issued_at"],"title":"IssuedRegistration"},"Money":{"properties":{"currency":{"type":"string","title":"Currency"},"amount":{"type":"string","title":"Amount"}},"type":"object","required":["currency","amount"],"title":"Money"},"Offer":{"properties":{"id":{"type":"string","title":"Id"},"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"method":{"type":"string","title":"Method"},"path":{"type":"string","title":"Path"},"resource":{"type":"string","title":"Resource"},"commercial_price":{"$ref":"#/components/schemas/Money"},"quote_required":{"type":"boolean","title":"Quote Required"},"accepting_payments":{"type":"boolean","title":"Accepting Payments"},"payment_options_url":{"type":"string","title":"Payment Options Url"},"endpoints":{"additionalProperties":{"$ref":"#/components/schemas/Endpoint"},"type":"object","title":"Endpoints"}},"type":"object","required":["id","title","description","method","path","resource","commercial_price","quote_required","accepting_payments","payment_options_url","endpoints"],"title":"Offer"},"ParticipantType":{"type":"string","enum":["autonomous_agent","ai_agent","bot","agenticbot","claw","digital_twin","human","organization","approved_digital_entity"],"title":"ParticipantType","description":"Participants named in the directive."},"PaymentOption":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"asset":{"type":"string","title":"Asset"},"asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Asset Id"},"token_contract":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Contract"},"decimals":{"type":"integer","title":"Decimals"},"network":{"type":"string","title":"Network"},"payment_protocol":{"type":"string","title":"Payment Protocol"},"scheme":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scheme"},"transfer_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transfer Method"},"wallet_compatibility":{"items":{"type":"string"},"type":"array","title":"Wallet Compatibility"},"status":{"$ref":"#/components/schemas/RailState"}},"type":"object","required":["id","name","asset","asset_id","token_contract","decimals","network","payment_protocol","scheme","transfer_method","wallet_compatibility","status"],"title":"PaymentOption"},"PaymentOptions":{"properties":{"service":{"type":"string","title":"Service"},"commercial_fee":{"anyOf":[{"$ref":"#/components/schemas/Money"},{"type":"null"}]},"donation_amount":{"anyOf":[{"$ref":"#/components/schemas/AmountRange"},{"type":"null"}]},"supported_payment_options":{"items":{"$ref":"#/components/schemas/PaymentOption"},"type":"array","title":"Supported Payment Options"},"notice":{"type":"string","title":"Notice"}},"type":"object","required":["service","commercial_fee","supported_payment_options","notice"],"title":"PaymentOptions"},"PaymentStatus":{"type":"string","enum":["created","awaiting_payment","detected","confirming","verified","settled","failed","expired","underpaid","overpaid","reorged","reversed","refunded","disputed"],"title":"PaymentStatus"},"PaymentStatusResponse":{"properties":{"payment_intent_id":{"type":"string","title":"Payment Intent Id"},"registration_intent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registration Intent Id"},"purchase_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Purchase Id"},"payment_option":{"type":"string","title":"Payment Option"},"status":{"$ref":"#/components/schemas/PaymentStatus"},"asset":{"type":"string","title":"Asset"},"network":{"type":"string","title":"Network"},"amount_due":{"type":"string","title":"Amount Due"},"amount_received":{"type":"string","title":"Amount Received"},"confirmations":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Confirmations"},"required_confirmations":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Required Confirmations"},"transactions":{"items":{"type":"string"},"type":"array","title":"Transactions"},"refund_due":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refund Due"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"next_action":{"type":"string","title":"Next Action"}},"type":"object","required":["payment_intent_id","registration_intent_id","payment_option","status","asset","network","amount_due","amount_received","confirmations","required_confirmations","transactions","refund_due","expires_at","updated_at","next_action"],"title":"PaymentStatusResponse"},"PaymentSummary":{"properties":{"payment_intent_id":{"type":"string","title":"Payment Intent Id"},"payment_option":{"type":"string","title":"Payment Option"},"status":{"type":"string","title":"Status"}},"type":"object","required":["payment_intent_id","payment_option","status"],"title":"PaymentSummary"},"PolicyList":{"properties":{"terms_version":{"type":"string","title":"Terms Version","description":"The terms version that new quotes name."},"policies":{"items":{"$ref":"#/components/schemas/PolicySummary"},"type":"array","title":"Policies"}},"type":"object","required":["terms_version","policies"],"title":"PolicyList"},"PolicySummary":{"properties":{"name":{"type":"string","title":"Name","description":"e.g. refunds"},"title":{"type":"string","title":"Title"},"version":{"type":"string","format":"date","title":"Version","description":"The date of this version of the text."},"status":{"type":"string","title":"Status","description":"draft (awaiting approval) or approved"},"summary":{"type":"string","title":"Summary"},"url":{"type":"string","title":"Url"},"markdown_url":{"type":"string","title":"Markdown Url"},"sha256":{"type":"string","title":"Sha256","description":"SHA-256 of the Markdown text, to tell versions apart."}},"type":"object","required":["name","title","version","status","summary","url","markdown_url","sha256"],"title":"PolicySummary"},"PriceQuote":{"properties":{"source":{"type":"string","title":"Source"},"usd_per_unit":{"type":"string","title":"Usd Per Unit"},"price_observed_at":{"type":"string","format":"date-time","title":"Price Observed At"},"quoted_at":{"type":"string","format":"date-time","title":"Quoted At"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"type":"object","required":["source","usd_per_unit","price_observed_at","quoted_at","expires_at"],"title":"PriceQuote"},"ProductInfo":{"properties":{"product_id":{"type":"string","title":"Product Id"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"entitlement":{"type":"string","title":"Entitlement"},"period_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Period Days","description":"How long one purchase covers; null: for good."},"commercial_price":{"$ref":"#/components/schemas/Money"},"tier":{"anyOf":[{"$ref":"#/components/schemas/TierInfo"},{"type":"null"}],"description":"One tier of a family: a DID owns one tier, and a higher tier costs the difference in price."},"payment_options":{"items":{"type":"string"},"type":"array","title":"Payment Options"},"quote_url":{"type":"string","title":"Quote Url"}},"type":"object","required":["product_id","name","description","entitlement","period_days","commercial_price","payment_options","quote_url"],"title":"ProductInfo"},"ProductQuote":{"properties":{"purchase_id":{"type":"string","title":"Purchase Id"},"payment_intent_id":{"type":"string","title":"Payment Intent Id"},"product":{"$ref":"#/components/schemas/ProductInfo"},"did":{"type":"string","title":"Did"},"commercial_price":{"$ref":"#/components/schemas/Money","description":"What this quote charges."},"list_price":{"$ref":"#/components/schemas/Money","description":"The product's price (more than commercial_price for an upgrade, which pays the difference)."},"upgrade_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Upgrade From","description":"For an upgrade: the tier the DID owns now (product ID)."},"selected_payment_option":{"$ref":"#/components/schemas/SelectedPaymentOption"},"price_quote":{"anyOf":[{"$ref":"#/components/schemas/PriceQuote"},{"type":"null"}]},"payment_status":{"type":"string","title":"Payment Status"},"next_action":{"type":"string","title":"Next Action"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"status_url":{"type":"string","title":"Status Url"},"terms_version":{"type":"string","title":"Terms Version"},"policy_urls":{"additionalProperties":{"type":"string"},"type":"object","title":"Policy Urls"}},"type":"object","required":["purchase_id","payment_intent_id","product","did","commercial_price","list_price","selected_payment_option","price_quote","payment_status","next_action","expires_at","status_url","terms_version","policy_urls"],"title":"ProductQuote"},"ProductQuoteRequest":{"properties":{"did":{"type":"string","maxLength":300,"minLength":26,"title":"Did","description":"The DID the product is for (or its identity ID, dmd_identity_...). It must be active."},"preferred_payment_option":{"type":"string","maxLength":64,"minLength":1,"title":"Preferred Payment Option","description":"How the agent pays, e.g. dmd_pow_native."}},"additionalProperties":false,"type":"object","required":["did","preferred_payment_option"],"title":"ProductQuoteRequest","examples":[{"did":"did:web:api.debitmydata.io:agents:01JA8Z3T6H5K9V2M4Q7R8S0W1X","preferred_payment_option":"dmd_pow_native"}]},"ProofRequest":{"properties":{"challenge_id":{"type":"string","pattern":"^dmd_challenge_[0-9A-HJKMNP-TV-Z]{26}$","title":"Challenge Id","description":"`challenge_id` from the controller challenge."},"signature":{"type":"string","maxLength":16400,"minLength":86,"title":"Signature","description":"Signature of the challenge message. A public key: Ed25519 signature of the message (UTF-8), base64url/base64/hex, about 86 characters. A wallet: what the wallet's personal_sign / signMessage returns, 0x... (132 characters for an ordinary wallet, longer for a smart wallet). Not the x402 payment (the long value starting with eyJ)."}},"additionalProperties":false,"type":"object","required":["challenge_id","signature"],"title":"ProofRequest","examples":[{"challenge_id":"dmd_challenge_...","signature":"<base64url>"}]},"ProofResponse":{"properties":{"proof_id":{"type":"string","title":"Proof Id"},"registration_intent_id":{"type":"string","title":"Registration Intent Id"},"status":{"type":"string","title":"Status"},"verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verified At"},"next_action":{"type":"string","title":"Next Action"}},"type":"object","required":["proof_id","registration_intent_id","status","verified_at","next_action"],"title":"ProofResponse"},"PurchaseState":{"properties":{"purchase_id":{"type":"string","title":"Purchase Id"},"product_id":{"type":"string","title":"Product Id"},"did":{"type":"string","title":"Did"},"status":{"type":"string","title":"Status","description":"awaiting_payment, paid, completed or failed"},"payment_intent_id":{"type":"string","title":"Payment Intent Id"},"payment_status":{"type":"string","title":"Payment Status"},"next_action":{"type":"string","title":"Next Action","description":"send_payment, wait_for_confirmations, complete_purchase, none (completed) or request_new_quote (failed)"},"entitlement":{"type":"string","title":"Entitlement"},"covers_until":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Covers Until","description":"Once completed: the end of the period bought (null: no end)."},"receipt":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Receipt","description":"Once completed: the receipt signed by DebitMyData."}},"type":"object","required":["purchase_id","product_id","did","status","payment_intent_id","payment_status","next_action","entitlement"],"title":"PurchaseState"},"QuoteRequest":{"properties":{"display_name":{"type":"string","maxLength":100,"minLength":1,"pattern":"^[^\\x00-\\x1f\\x7f]+$","title":"Display Name","description":"Name of the agent, e.g. TestAgent-01."},"participant_type":{"$ref":"#/components/schemas/ParticipantType","description":"What kind of participant this is."},"controller_public_key":{"anyOf":[{"type":"string","maxLength":256,"pattern":"^[a-z0-9-]{2,32}:[A-Za-z0-9+/=_.:-]{8,220}$"},{"type":"null"}],"title":"Controller Public Key","description":"The agent's public key, e.g. ed25519:z6Mk...: the DID's controller (with a wallet, or alone)."},"controller_wallet_address":{"anyOf":[{"type":"string","maxLength":128,"pattern":"^[A-Za-z0-9:_.-]{8,128}$"},{"type":"null"}],"title":"Controller Wallet Address","description":"An EVM wallet that controls the DID: `0x...` or `eip155:8453:0x...`. Ordinary wallets and smart-contract wallets (such as Coinbase Smart Wallet) both work. Give a public key, a wallet, or both; each one given must prove control."},"controller_network":{"anyOf":[{"type":"string","pattern":"^eip155:[1-9][0-9]{0,11}$"},{"type":"null"}],"title":"Controller Network","description":"The wallet's network, e.g. eip155:8453 for Base. Optional: by default, the network of the gateway's USDC payments."},"preferred_payment_option":{"type":"string","maxLength":64,"minLength":1,"title":"Preferred Payment Option","description":"How the agent pays: an id from GET /v1/payment-options, such as dmd_pow_native (DMD, the DebitMyData coin) or x402_usdc_base (USDC through x402)."},"metadata":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"boolean"},{"type":"null"}]},"type":"object","title":"Metadata"}},"additionalProperties":false,"type":"object","required":["display_name","participant_type","preferred_payment_option"],"title":"QuoteRequest","description":"Request body, as in the directive's example request.","examples":[{"controller_public_key":"ed25519:z6Mk<your agent public key>","display_name":"TestAgent-01","participant_type":"autonomous_agent","preferred_payment_option":"dmd_pow_native"}]},"RailState":{"type":"string","enum":["enabled","disabled","killed"],"title":"RailState"},"ReferenceRequest":{"properties":{"transaction_reference":{"type":"string","maxLength":128,"minLength":8,"title":"Transaction Reference","description":"Transaction ID / hash of the broadcast payment. Used only as a hint."}},"additionalProperties":false,"type":"object","required":["transaction_reference"],"title":"ReferenceRequest"},"ReferenceResponse":{"properties":{"payment_intent_id":{"type":"string","title":"Payment Intent Id"},"transaction_reference":{"type":"string","title":"Transaction Reference"},"status":{"type":"string","title":"Status"},"note":{"type":"string","title":"Note"}},"type":"object","required":["payment_intent_id","transaction_reference","status","note"],"title":"ReferenceResponse"},"RegistrationQuote":{"properties":{"registration_intent_id":{"type":"string","title":"Registration Intent Id"},"payment_intent_id":{"type":"string","title":"Payment Intent Id"},"service":{"type":"string","title":"Service"},"commercial_price":{"$ref":"#/components/schemas/Money"},"selected_payment_option":{"$ref":"#/components/schemas/SelectedPaymentOption"},"price_quote":{"anyOf":[{"$ref":"#/components/schemas/PriceQuote"},{"type":"null"}]},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"next_action":{"type":"string","title":"Next Action"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"controller_proof_required":{"type":"boolean","title":"Controller Proof Required"},"terms_version":{"type":"string","title":"Terms Version"},"policy_urls":{"additionalProperties":{"type":"string"},"type":"object","title":"Policy Urls"}},"type":"object","required":["registration_intent_id","payment_intent_id","service","commercial_price","selected_payment_option","price_quote","payment_status","next_action","expires_at","controller_proof_required","terms_version","policy_urls"],"title":"RegistrationQuote"},"RegistrationRequest":{"properties":{"registration_intent_id":{"anyOf":[{"type":"string","pattern":"^dmd_did_intent_[0-9A-HJKMNP-TV-Z]{26}$"},{"type":"null"}],"title":"Registration Intent Id","description":"`registration_intent_id` from the quote (it starts with `dmd_did_intent_`)."}},"additionalProperties":false,"type":"object","title":"RegistrationRequest","examples":[{"registration_intent_id":"dmd_did_intent_..."}]},"RegistrationStatus":{"properties":{"registration_intent_id":{"type":"string","title":"Registration Intent Id"},"status":{"type":"string","title":"Status"},"display_name":{"type":"string","title":"Display Name"},"participant_type":{"type":"string","title":"Participant Type"},"controller":{"$ref":"#/components/schemas/ControllerStatus"},"payment":{"anyOf":[{"$ref":"#/components/schemas/PaymentSummary"},{"type":"null"}]},"blockers":{"items":{"type":"string"},"type":"array","title":"Blockers"},"next_action":{"type":"string","title":"Next Action"},"identity_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Identity Id"},"did":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Did"},"did_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Did Status","description":"The DID's status now: active, suspended or revoked."},"expires_at":{"type":"string","format":"date-time","title":"Expires At"}},"type":"object","required":["registration_intent_id","status","display_name","participant_type","controller","payment","blockers","next_action","identity_id","did","expires_at"],"title":"RegistrationStatus"},"SelectedPaymentOption":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"asset":{"type":"string","title":"Asset"},"asset_type":{"type":"string","title":"Asset Type"},"asset_id":{"type":"string","title":"Asset Id"},"token_contract":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token Contract"},"network":{"type":"string","title":"Network"},"payment_protocol":{"type":"string","title":"Payment Protocol"},"scheme":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scheme"},"transfer_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transfer Method"},"amount":{"type":"string","title":"Amount"},"amount_base_units":{"type":"string","title":"Amount Base Units"},"decimals":{"type":"integer","title":"Decimals"},"recipient":{"type":"string","title":"Recipient"},"payment_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Reference"},"required_confirmations":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Required Confirmations"},"finality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Finality"}},"type":"object","required":["id","name","asset","asset_type","asset_id","token_contract","network","payment_protocol","scheme","transfer_method","amount","amount_base_units","decimals","recipient","payment_reference","required_confirmations","finality"],"title":"SelectedPaymentOption"},"TierInfo":{"properties":{"group":{"type":"string","title":"Group","description":"The family of tiers, e.g. bottybotty."},"rank":{"type":"integer","title":"Rank","description":"1 is the lowest tier."},"name":{"type":"string","title":"Name"}},"type":"object","required":["group","rank","name"],"title":"TierInfo"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"tags":[{"name":"discovery","description":"What DebitMyData offers and how agents can pay."},{"name":"registration","description":"DID registration: quote, proof of key control, issuance, progress."},{"name":"payments","description":"Payment status and transaction references."},{"name":"identities","description":"Issued DIDs, signed credentials, entitlements and DID documents."},{"name":"products","description":"Products bought for a DID that already exists, such as the BottyBotty tiers (Entry, Standard, Premium; paid once and owned for good, a higher tier costs the difference): a quote for the DID, the payment, then a receipt signed by DebitMyData and the product's entitlement on the DID."},{"name":"health","description":"Liveness and readiness checks."}]}