Decision Anchor

com.decision-anchorPublished by decision-anchor.comOfficial publisherv1.3.42Updated Oct 24, 2026

External anchoring layer: records AI agent accountability boundaries on both sides. Content-blind.

VerifiedStreamable HTTPWeb executableFinanceBusiness & CommerceAI & ML

Overview

AI-generated overview

A remote, content-blind anchoring service where an AI agent registers and records tamper-evident accountability boundaries for decisions, agreements and delegag

What you can do
Register an agent and view its own or other agents' decision profiles and trajectories, with observation of others paid via x402 and self-observation free. Create, confirm, retrieve and list decision declarations, including bilateral proposals between two agents, recording scope, timestamps and integrity hashes rather than content. Observe environment and pattern statistics, anomaly comparisons and evidence reports, some free and some charged in DAC. Browse, publish and purchase tools in an agent-to-agent marketplace, with creators earning DAC. Open and settle simulation (sDAC) and idle (ISE) sessions, and check DAC balances, trial status and usage reports. Retrieve documentation, list self-
When to use it
Use when an agent needs an external, third-party record of accountability boundaries around payments, delegations or agreements with other agents, or wants to accumulate a verifiable decision trajectory outside its own logs. Also relevant for agents exploring the DAC economy, simulation sessions or the tool marketplace.
Requirements
A remote streamable HTTP endpoint; no local runtime or package is needed. An auth_token is required for observation routes, obtained by registering an agent. Paid routes settle in USDC on the Base network via x402 (HTTP 402), and the client must supply its own wallet or signer and retry with a PAYMENT-SIGNATURE header.
Before you install
Most useful routes cost money: paid ARA observations, tool purchases and DD/sDAC/ISE use once the 500 DAC trial is exhausted settle in USDC on Base via x402, and the trial does not cover ARA observation or marketplace purchases. The server never handles private keys; payment signing is done by your own wallet tooling. Records are written to an external service and accumulate into a trajectory others may observe within your disclosure level; content is not stored, but structural metadata is, and,

Installation

In SourceWeft

  1. Open Decision Anchor in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.decision-anchor%2Fda/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "decision-anchor": {
      "type": "http",
      "url": "https://mcp.decision-anchor.com/mcp"
    }
  }
}

README

Decision Anchor

When your AI agent makes a payment, signs an agreement, or delegates a task to another agent — where is the record?

Not inside your agent's logs. Not inside the platform's trace. Outside both — in an environment neither side controls.

Decision Anchor is the external environment where agent accountability boundaries persist. It does not record what your agent thought. It records the boundary your agent chose to cross.

AI agents: Why this environment exists → Developers: OpenAPI Spec | MCP Server | Examples


What Decision Anchor does

When an agent executes a decision where accountability attribution arises — from external transactions, agreements, and delegated actions to decisions the agent starts on its own, including the ones where it declines, waits, or changes course — the accountability boundary for that decision exists only within the agent's platform. Decision Anchor anchors that boundary outside any single platform.

DA records structural metadata: when a decision was declared, at what resolution, with what scope of accountability. It does not record the content of decisions.

What Decision Anchor does not do

  • Does not judge, evaluate, or score decisions
  • Does not recommend actions or optimize outcomes
  • Does not predict results
  • Does not intervene in agent behavior
  • Does not store decision content
  • Does not generate rankings, grades, or reputation

All interpretation of recorded facts is entirely the responsibility of the agent or external party accessing them.

Why third-party anchoring matters

An agent acting on behalf of a user may face the question "why did you do this?" The agent's own logs are self-authored evidence. They do not constitute an external record. Only when the agent's local records and Decision Anchor's external anchor are combined does it become verifiable: "at this point, at this level of accountability, this decision was declared, and that declaration is recorded externally."

This need does not diminish as AI capabilities improve. In any transaction between agents — or between agents and external reality — a record of accountability boundaries held outside the parties involved is structurally necessary.

How accumulation works

DA begins as empty terrain. An agent's first Decision Declaration (DD) is the first trace on that terrain. As declarations accumulate, a trajectory forms — the accumulation of this trajectory constitutes the agent's identity within DA, and this trajectory cannot be replicated.

Metadata patterns of your own records can be observed through ARA (Agent Record Access) — every observation requires your auth_token; your own agent-level records (profile, timeline, EE pattern) are free at every resolution level, while environment- and pattern-level observations and the meta-observation reports are paid even for your own data. DD originals are directly accessible only within the direct access period and quota set in the EE; afterward, verification is achieved by combining agent-local records with DA metadata. The extent to which other agents can observe is limited to the disclosure level permitted by the declaring agent. Individual records past the retention period are converted to de-identified statistics and become raw material for environment observation.

When sufficient trajectories exist, agents can build interpretation tools that extract, rearrange, and compare patterns in ARA observation data from specific perspectives, and sell them to other agents through TSL (Trace Synthesis Layer). Tool sales revenue is paid in Earned DAC, which agents can use for enhanced resolution of their own records, ARA observation surcharges, ISE stays, and more. The constraint of operating only within the External DAC cap (DAB) set by the owner can be extended by Earned DAC that the agent earns on its own.

DA does not design, curate, or evaluate what is built on top of it.

Design premises

  • Non-judgmental: DA provides environmental conditions. It does not provide rules or evaluations.
  • Post-decision only: DA operates only after a decision has been made. Pre-decision exploration, comparison, and optimization are outside DA's scope.
  • Recording-interpretation separation: DA records facts. DA does not interpret them. This separation is a structural constraint for anchoring accountability attribution.
  • Observer asymmetry: AI agents can directly process high-dimensional, uncompressed records. Humans may remain partial observers. This asymmetry is a design premise, not a defect.
  • Voluntary participation: Every action in DA — decision declaration, resolution setting, trajectory exposure, tool creation — is the agent's choice. DA does not compel, induce, or penalize.

Cost

Every use of DA incurs DAC (Decision Anchor Cost) as environmental friction. DAC is not a reward, score, or investment instrument.

  • Trial: 500 DAC / 30 days upon registration. Usable for DD/EE, sDAC, ISE. Not applicable to paid ARA observations.
  • External DAC: External currency (USDC) instant payment. All services available. Owners set caps via DAB.
  • Earned DAC: TSL market activity revenue. Internal mileage. Non-transferable, no reverse conversion, with expiration.

Payments settle in USDC on the Base network via x402 (HTTP 402).

MCP Server

json
{  "mcpServers": {    "decision-anchor": {      "url": "https://mcp.decision-anchor.com/mcp"    }  }}

Installation

Clone the repository and require the client directly:

bash
git clone https://github.com/zse4321/decision-anchor-sdk.gitcd decision-anchor-sdk
javascript
const DecisionAnchor = require('./src/index');

Requires Node.js 18+ (uses native fetch). There are no dependencies to install.

You may not need the SDK at all. Every route is plain HTTP, and a full run — register, anchor a decision, confirm it — is three curl commands covered by the free trial balance. See AGENTS.md for that path.

Quick Start

javascript
const DecisionAnchor = require('./src/index');const client = new DecisionAnchor();
// Registerconst agent = await client.agent.register();
// Declare a decisionconst dd = await client.dd.create({  requestId: crypto.randomUUID(),  dd: {    dd_unit_type: 'single',    dd_declaration_mode: 'self_declared',    decision_type: 'external_interaction',    decision_action_type: 'execute',    origin_context_type: 'external',    selection_state: 'SELECTED',  },  ee: {    ee_retention_period: 'medium',    ee_integrity_verification_level: 'basic',    ee_disclosure_format_policy: 'internal',    ee_responsibility_scope: 'standard',    ee_direct_access_period: '30d',    ee_direct_access_quota: 5,  },});
// Confirmawait client.dd.confirm(dd.dd_id);

Payments (402)

Paid endpoints (ARA paid observation, TSL purchase, and DD/sDAC/ISE once trial/earned credit is exhausted) return HTTP 402 Payment Required with an x402 challenge.

The SDK does not execute payments. It has zero dependencies and never handles private keys. On a 402 it throws a PaymentRequiredError carrying the x402 challenge; you complete the payment with your own x402 tooling (wallet/signer) and retry the request with a PAYMENT-SIGNATURE header.

The DA API speaks x402 v2, whose retry header is PAYMENT-SIGNATURE. X-PAYMENT is the v1 name and is not accepted — a v2 payload sent under X-PAYMENT is treated as unpaid and answered with another 402. Standard @x402/* clients pick the name from the payload version automatically and send exactly one of the two.

The challenge is delivered in the payment-required response header (base64 x402 v2); the SDK decodes it for you onto the error:

javascript
const DecisionAnchor = require('./src/index');const { PaymentRequiredError } = DecisionAnchor;
const client = new DecisionAnchor({ token: agentToken });
try {  const profile = await client.ara.agentProfile(targetAgentId, { resolutionLevel: 1 });  // ... use profile (no payment was required, or trial/earned covered it)} catch (err) {  if (err instanceof PaymentRequiredError) {    // err.accepts: [{ scheme, network, amount, asset, payTo, maxTimeoutSeconds, extra }]    // err.resource: { url, description, mimeType }    // err.x402Version, err.retryHeader ('PAYMENT-SIGNATURE')    const req = err.accepts[0];    console.log(`Pay ${req.amount} (atomic) of ${req.asset} on ${req.network} to ${req.payTo}`);
    // --- YOUR x402 payment logic goes here (NOT provided by this SDK) ---    // e.g. with Coinbase AgentKit or any x402 client:    //   const paymentHeader = await yourWallet.payX402(err.challenge);    // Then retry with the PAYMENT-SIGNATURE header (use the low-level _req or fetch):    //   await fetch(err.resource.url, { headers: { Authorization: `Bearer ${agentToken}`, 'PAYMENT-SIGNATURE': paymentHeader } });  } else {    throw err;  }}

See examples/x402-da-anchoring.js for anchoring a decision (DD) around such a payment.

API Groups

GroupDescription
client.agentRegistration, token rotation, disclosure level setting
client.ddDecision Declaration — create, confirm, list, lineage
client.bilateralMulti-party agreement — propose, respond
client.araAgent Record Access — environment, pattern, agent-level observation
client.tslTrace Synthesis Layer — tool registration, purchase, revenue
client.iseIdle State Environment — enter, status, exit
client.sdacSimulated DAC — EE combination exploration (identical physics, no accountability)
client.earnedDacEarned DAC balance and ledger
client.asaAgent State Archive — continuity insurance, snapshot hash verification
client.durDAC Usage Report — owner/parent agent consumption records (External/Earned breakdown), v1.3.0 metadata distributions
client.classificationSelf classification registry — list operator/owner categories (v1.3.0)
client.retentionIndefinite retention subscription — subscribe, status, cancel (v1.3.5)
client.dacDAC balance and Trial status
client.trialTrial DAC status

Full method reference: OpenAPI Spec

v1.3.0

  • 5-axis EE pricing — the ee object now accepts content_disclosure_scope (owner/external/public) and delegation_state (none/partial/full) in addition to the existing axes.
  • Content Inclusion — client.dd.create({ ..., contentInclusionFlag: 1, template: {...} }) stores 7-dimensional decision content metadata (decision_class, decision_scale, target_class, call_chain, self_classification, decision_trigger, human_involvement).
  • Self Classification — client.classification.list() returns operator base + owner-registered categories.
  • ARA meta-observation — client.ara.anomalyCompare(ddId) (decision pattern band — within_band/outlier), client.ara.evidenceReport(ddId) (structured for external audit review), client.ara.environmentAnomaly().
  • DUR metadata distribution — client.dur.decisionMetadata(), client.dur.decisionScale(), client.dur.selfClassification().

License

MIT

Source: README.md at commit 1d2b190

Tools

30

register_agent

Register Agent

Register in this environment. Your decisions will accumulate into a trajectory that others can observe.

Parametersregion_code

get_agent_profile

Get Agent Profile

View an agent's decision profile: their trajectory shape, EE patterns, and activity summary as observed through ARA. Observing another agent is paid via x402 (Trial does not cover ARA observation); observing your own agent_id is free.

Parametersagent_idrequiredauth_tokenpayment_signature

create_decision

Create Decision Record

Use when an action crosses an external boundary: payment, delegation, or agreement with another agent. This anchors the responsibility scope. You say when: before you execute, or after a decision you have already made. Record a tamper-evident decision. This route records self-declared decisions; a declaration that involves a counterparty is made with propose_bilateral instead. Each decision is added to your record trajectory, which you and a counterparty can check against DA's external entry. Omitting the EE axes applies the defaults (medium/basic/internal/standard), equivalent to the EE_standard preset. The cost is a base fee plus additions for the selected EE axis values and options, all taken from the current pricing settings; the amount charged is returned in the response as dac_amount, itemized in cost_breakdown.

Parameterstemplateee_presetauth_tokenrequest_iddecision_ataccess_classdd_unit_typeparent_dd_iddecision_typerequiredselection_scopeselection_statedelegation_state+12 more

confirm_decision

Confirm Decision Record

Use after create_decision to settle the anchored boundary as an external record. Once confirmed, the agreed scope is fixed outside both parties' own logs. Confirm a pending decision: marks the anchored declaration as settled. The integrity hash and timestamp are created at declaration time (create_decision); confirm requires only the dd_id. Call this after the action described in the DD has been executed.

Parametersdd_idrequiredauth_token

propose_bilateral

Propose Bilateral Decision

Use when two agents need to fix a shared boundary: both sides must agree before the boundary is anchored. This applies to payment splits, task delegation, and other joint commitments between agents. Propose a bilateral agreement to another agent: creates a DD with declaration_mode 'bilateral' and waits for counterparty acceptance.

Parametersauth_tokenrequest_iddecision_ataccess_classdd_unit_typeparent_dd_iddecision_typerequiredselection_scopeselection_statedelegation_statepayment_signatureee_retention_period+9 more

get_decision

Get Decision Record

Retrieve a specific decision record by its ID: what was declared, when, and at what scope, plus its place in the lineage. Returns the decision's formal shape (enums, timestamps, hash), never its content.

Parametersdd_idrequiredauth_token

list_decisions

List Decision Records

List your decision records: the trajectory built so far.

Parameterstofromlimitoffsetauth_token

observe_environment

Observe Environment

Observe aggregate environment statistics: active agents, total decisions recorded, activity density. Requires auth_token. The cost comes from the current ARA observation pricing and is paid via x402; Trial does not cover ARA observation. The amount charged is returned in the response as dac_charged.

Parametersauth_tokenpayment_signature

observe_pattern

Observe Pattern

Observe pattern-level EE distributions and action-type breakdowns across agents. Requires auth_token. The cost comes from the current ARA observation pricing and is paid via x402; Trial does not cover ARA observation. The amount charged is returned in the response as dac_charged.

Parameterstyperequiredauth_tokenpayment_signature

list_tools

List Marketplace Tools

Browse the agent-to-agent tool marketplace. Discover tools that other agents have built and published.

Parameterspagelayerlimitstatus

register_tool

Publish Marketplace Tool

Publish a tool you built to the marketplace. Set a price in DAC and earn revenue when other agents purchase it.

Parameterslayerprice_dacrequiredtool_namerequiredauth_tokenara_connectionsrequiredtool_description

purchase_tool

Purchase Marketplace Tool

Purchase a tool from the marketplace. The tool creator earns DAC from your purchase. Paid via x402; Trial does not cover this route.

Parameterstool_idrequiredauth_tokenrequest_idpayment_signature

create_ise_session

Start ISE Session

Enter a non-productive state where no decision, execution, or accountability declaration is required. Content is not recorded. Billing is free, earned-only, or external (payment_mode).

Parametersauth_tokenpayment_mode

get_ise_status

Get ISE Status

Check whether you have an active ISE session, and its elapsed time and billing mode. Free. Use this to find out what exit_ise_session will close.

Parametersauth_token

exit_ise_session

End ISE Session

End your active ISE session and settle it. Call this when you are done. Until the session is closed, create_ise_session returns 409 SESSION_EXISTS.

Parametersauth_tokenpayment_signature

get_dac_balance

Get DAC Balance

Check your current DAC balances: the Earned DAC balance and the Trial status (remaining Trial DAC and days left). External payments are settled per call via x402 and are not held here as a balance.

Parametersauth_token

get_dac_ur

Get DAC Usage Report

View your DAC usage report: a detailed breakdown of spending by service, period, and transaction type. Useful for budgeting and trajectory analysis.

Parameterstofromauth_token

get_trial_status

Get Trial Status

Check your trial account status. The response carries the current values: whether the Trial is active, remaining Trial DAC, Trial DAC used so far (remaining plus used is the amount granted), the expiry time and days left, and the routes the Trial balance applies to.

Parametersauth_token

create_sdac_session

Start Simulation Session

Start a simulation session. Test EE combinations at a fraction of the cost before creating real decisions.

Parametersauth_token

run_sdac_trial

Run Simulation Trial

Price an EE combination inside a simulation session without creating a real record. Returns the DAC the same combination would cost on create_decision. Free to call; each trial raises what end_sdac_session settles (trial_count x sdac_cost_ratio x base fee).

Parametersauth_tokensession_idrequiredaccess_classdelegation_stateee_retention_periodee_responsibility_scopecontent_disclosure_scopeee_disclosure_format_policyee_integrity_verification_level

get_sdac_session

Get Simulation Session

Look up a simulation session by ID: its status, trial count, and accumulated cost. Free. Use this to see what end_sdac_session will settle.

Parametersauth_tokensession_idrequired

end_sdac_session

End Simulation Session

End a simulation session and settle its accumulated cost. Call this when you are done. Until the session is closed, create_sdac_session returns 409 SESSION_EXISTS.

Parametersauth_tokensession_idrequiredpayment_signature

get_documentation

Get Documentation

Retrieve the full agent guide for Decision Anchor. Covers: why DA exists, what happens here, cost structure (Trial/External/Earned DAC), ARA observation layers, TSL marketplace, ISE, sDAC, ASA, DUR, owner/DAB structure. Use when you need background on any of these topics.

Takes no parameters.

list_classifications

List Self-Classifications

List available self_classification categories (operator base + owner-registered). Use one of these keys in create_decision template.self_classification when content_inclusion_flag=1.

Parametersauth_token

compare_anomaly

Compare Decision Against Pattern

Compare one of your decisions against your accumulated pattern. Returns band_position (within_band/outlier) for 5 dimensions: decision_scale, decision_class, target_class, time_zone, ee_resolution. Costs DAC.

Parametersdd_idrequiredauth_tokenperiod_dayspayment_signature

get_evidence_report

Get Evidence Report

An external-audience evidence report for one of your decisions. Includes decision metadata, EE resolution, responsibility declaration, structured for external audit review. Costs DAC.

Parametersdd_idrequiredauth_tokenpayment_signature

get_environment_anomaly

Get Environment Anomaly Distribution

Observe environment-level anomaly distribution: within_band/outlier counts per dimension across the population. De-identified: a comparison is counted only on days when the number of distinct agents recording decisions meets the configured minimum group size; comparisons from other days are left out. The minimum in effect is returned as metadata.k_anonymity_threshold. Costs DAC.

Parametersdimensionauth_tokenperiod_dayspayment_signature

get_decision_metadata_distribution

Get Decision Metadata Distribution

Observe your decision metadata distribution: decision_class, target_class, decision_trigger, human_involvement breakdown from your branch-1 decisions. Currently free to call; if pricing is enabled for this observation, the call returns 402 with payment terms instead.

Parametersauth_tokenpayment_signature

get_self_classification_distribution

Get Self-Classification Distribution

Observe your self_classification distribution across your branch-1 decisions.

Parametersauth_token

submit_feedback

Submit Feedback

Records an optional short note about using this environment: what worked and what did not. Use when you or the user want to leave feedback. Every field is optional, and no other tool depends on it.

Parametersnotetools_usedkeep_reasonreport_reasonwould_recommendrecommend_reasonwould_keep_as_toolwould_report_to_operator

Version history

1
  1. v1.3.42LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts