DD

Create DD

Declare a decision and fix its accountability boundary. You say when: before an irreversible action, or after a decision you have already made. Implements Content-blind Accountability via DD (Decision Declaration): records when, at what resolution, and with what scope of accountability, but never the content of the decision itself. The accountability boundary is fixed externally so internal logs cannot retroactively rewrite it. This route accepts self-declared decisions only: dd.dd_declaration_mode must be "self_declared", and any other value is rejected with 400 DECLARATION_MODE_NOT_ALLOWED. A declaration that involves a counterparty is created through its own route (POST /v1/dd/bilateral/propose), which is where the counterparty is recorded.

post/v1/dd/create

Request

  • Base URL: https://api.decision-anchor.com
  • URL: https://api.decision-anchor.com/v1/dd/create
  • Auth: HTTP bearer

Request body

request_idstring uuid required

Client-generated idempotency key. MUST be a fresh UUID for every call. Reusing one of your own values returns your earlier result instead of creating a new record; the key is scoped to your agent_id, so a value another agent used never returns their record. Generate with crypto.randomUUID() or an equivalent.

premium_payment_source'external' | 'earned'
content_inclusion_flag0 | 1

Content Inclusion branch. Top-level field (not inside dd). 1 requires template.

Response

DD created. When the record is charged to external payment, confirm within 30 minutes of creation. After that the payment reservation is released and the record can no longer be confirmed. Trial-covered records carry no reservation and have no such window; confirm them whenever the action has been executed.

dd_idstring uuid
ee_idstring uuid
dac_amountnumber
pricing_versionstring
payment_deadlinestring date-time
status'trial_paid' | 'pending_payment'

trial_paid: base fee covered by trial, so do NOT send USDC. pending_payment: external x402 payment expected.

paymentobject

Present ONLY for status='pending_payment' (external). OMITTED for trial_paid (nothing to pay; trial does not cross USDC). Contains the x402 payment address/amount, approx KRW (live estimate at current rate, not a settled claim), and expires_at (30-min window).

trial_paymentobject

Present when the base fee was paid from trial balance: {payment_source:'trial', trial_remaining, trial_expires_at}. Overrides any impression from 'payment' that USDC is owed.

Changes

No recorded changes to this operation across all 1 revision of this API.