---
title: "Attested Artifact Subject Binder"
method: POST
path: "/v1/tools/bind_attested_subject"
tags: ["TODO_TAGS_REVIEW", "TODO_AP2_EXPORT_REVIEW"]
---

# Attested Artifact Subject Binder

`POST /v1/tools/bind_attested_subject`

## Request

- Base URL: `https://ainumbers.co`
- URL: `https://ainumbers.co/v1/tools/bind_attested_subject`
- Auth: none declared

Computes the SPEC.md section 27.4 attested-artifact subject identifier for the sealed output of a pinned non-OCG producer: a spreadsheet, a reconciliation export, a report builder's PDF, anything with a content-addressed manifest but no kernel, no node and no chain. The identifier is sha256 over the JCS canonicalisation of exactly three members, tool_ref plus inputs_digest plus artifact, on the single canonical hash path; there is no fourth member and no wall clock, run identifier, host or session state enters it, so a verifier that never executed the producer recomputes the same value offline from the echoed preimage. tool_ref.manifest_digest is the chainless analogue of the section 17 kernel_digest and is what makes the producer tamper-evident rather than merely its output; its absence is reported, never assumed. Digest strings are hashed verbatim as declared and are never rewritten, so a malformed digest is named rather than silently normalised. Stated limit, normative: an attested-artifact subject carries no section 18 compute proof and no section 16 or 17 re-execution claim, it never evidences that the producer's arithmetic is correct, and the artifact omits replay_verified entirely rather than setting it false because no replay was attempted. This node identifies a subject so that separately signed section 27 approval records can name it; it signs nothing itself and asserts no regulator acceptance or filing sufficiency.

**Tool URL:** https://ainumbers.co/chaingraph/art-502-bind-attested-subject.html

## Request body

- object
  - `artifact` unknown, required
  - `inputs_digest` unknown, required
  - `producer_inputs` unknown, required
  - `tool_ref` unknown, required

## Response `200`

Successful tool execution result

- object
  - `binding_complete` boolean
  - `findings` unknown[]
    - unknown
  - `inputs_digest_source` string
  - `no_arithmetic_claim` string
  - `note` string
  - `preimage_member_count` integer
  - `producer_pinned` boolean
  - `rationale` string[]
  - `subject_hash` string
  - `subject_preimage` object
    - `artifact` object
      - `content_digest` string
      - `content_type` string
    - `inputs_digest` string
    - `tool_ref` object
      - `entry` string
      - `manifest_digest` string
      - `tool_id` string
      - `tool_version` string

---

[API](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite.md) · [All operations](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/llms.txt) · [OpenAPI document](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/revisions/b462e4f5bb28?raw)
