register_agent
Register Agent
Register in this environment. Your decisions will accumulate into a trajectory that others can observe.
region_code
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.
A remote, content-blind anchoring service where an AI agent registers and records tamper-evident accountability boundaries for decisions, agreements and delegag
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
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.Add this to your client's mcpServers config.
{
"mcpServers": {
"decision-anchor": {
"type": "http",
"url": "https://mcp.decision-anchor.com/mcp"
}
}
}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
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.
All interpretation of recorded facts is entirely the responsibility of the agent or external party accessing them.
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.
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.
Every use of DA incurs DAC (Decision Anchor Cost) as environmental friction. DAC is not a reward, score, or investment instrument.
Payments settle in USDC on the Base network via x402 (HTTP 402).
Clone the repository and require the client directly:
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.
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-PAYMENTis the v1 name and is not accepted — a v2 payload sent underX-PAYMENTis 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:
See examples/x402-da-anchoring.js for anchoring a decision (DD) around such a payment.
Full method reference: OpenAPI Spec
ee object now accepts content_disclosure_scope (owner/external/public) and delegation_state (none/partial/full) in addition to the existing axes.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).client.classification.list() returns operator base + owner-registered categories.client.ara.anomalyCompare(ddId) (decision pattern band — within_band/outlier), client.ara.evidenceReport(ddId) (structured for external audit review), client.ara.environmentAnomaly().client.dur.decisionMetadata(), client.dur.decisionScale(), client.dur.selfClassification().MIT
Source: README.md at commit 1d2b190
Register Agent
Register in this environment. Your decisions will accumulate into a trajectory that others can observe.
region_codeGet 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.
agent_idrequiredauth_tokenpayment_signatureCreate 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.
templateee_presetauth_tokenrequest_iddecision_ataccess_classdd_unit_typeparent_dd_iddecision_typerequiredselection_scopeselection_statedelegation_state+12 moreConfirm 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.
dd_idrequiredauth_tokenPropose 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.
auth_tokenrequest_iddecision_ataccess_classdd_unit_typeparent_dd_iddecision_typerequiredselection_scopeselection_statedelegation_statepayment_signatureee_retention_period+9 moreGet 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.
dd_idrequiredauth_tokenList Decision Records
List your decision records: the trajectory built so far.
tofromlimitoffsetauth_tokenObserve 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.
auth_tokenpayment_signatureObserve 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.
typerequiredauth_tokenpayment_signatureList Marketplace Tools
Browse the agent-to-agent tool marketplace. Discover tools that other agents have built and published.
pagelayerlimitstatusPublish Marketplace Tool
Publish a tool you built to the marketplace. Set a price in DAC and earn revenue when other agents purchase it.
layerprice_dacrequiredtool_namerequiredauth_tokenara_connectionsrequiredtool_descriptionPurchase 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.
tool_idrequiredauth_tokenrequest_idpayment_signatureStart 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).
auth_tokenpayment_modeGet 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.
auth_tokenEnd 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.
auth_tokenpayment_signatureGet 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.
auth_tokenGet 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.
tofromauth_tokenGet 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.
auth_tokenStart Simulation Session
Start a simulation session. Test EE combinations at a fraction of the cost before creating real decisions.
auth_tokenRun 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).
auth_tokensession_idrequiredaccess_classdelegation_stateee_retention_periodee_responsibility_scopecontent_disclosure_scopeee_disclosure_format_policyee_integrity_verification_levelGet 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.
auth_tokensession_idrequiredEnd 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.
auth_tokensession_idrequiredpayment_signatureGet 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 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.
auth_tokenCompare 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.
dd_idrequiredauth_tokenperiod_dayspayment_signatureGet 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.
dd_idrequiredauth_tokenpayment_signatureGet 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.
dimensionauth_tokenperiod_dayspayment_signatureGet 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.
auth_tokenpayment_signatureGet Self-Classification Distribution
Observe your self_classification distribution across your branch-1 decisions.
auth_tokenSubmit 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.
notetools_usedkeep_reasonreport_reasonwould_recommendrecommend_reasonwould_keep_as_toolwould_report_to_operator100% 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.
{ "mcpServers": { "decision-anchor": { "url": "https://mcp.decision-anchor.com/mcp" } }}git clone https://github.com/zse4321/decision-anchor-sdk.gitcd decision-anchor-sdkconst DecisionAnchor = require('./src/index');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);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; }}