Skip to main content

Kinetic Trust Service

kinetic-trust-service 2.1.0 is a synchronous library of KTP v2.1.0 evidence and issuance composition helpers. It is not a product or a runtime service. Library owns RFC-faithful semantics and DecisionRecord; Service provides replaceable conveniences for invoking product-supplied evidence adapters and one-evaluation issuance. Consumers may call Library directly without losing KTP semantics.

This is an independently maintained composition package. It is not an official KTP SDK and is not certified, maintained, or endorsed by NMCITRA. Passing tests, package checks, vectors, or scans is evidence limited to the behavior exercised; it is not deployment or application conformance.

Choosing Library or Service

Kinetic Trust Library is the semantic layer. Service is an optional Python package of synchronous composition helpers built on Library; despite its name, it is not a server or daemon. There is no Service-only path: Service depends on Library and delegates KTP semantics to it.

Scenario Use
You need deterministic KTP validation and evaluation, Decision Record projection, Trust Proof operations, Soul Constraint document parsing, or Trajectory parsing and adjacent-pair assessment. Library directly
You want Service's ordered, fail-first EvidenceHost for product-supplied adapters and/or its Issuer to compose one evaluation with Decision Record projection and, when Soul-clear, proof issuance. Library plus Service
You need networking, storage, retries, source authentication, key lifecycle, observability, human workflows, action execution, or enforcement. Product-owned code around Library or Library plus Service. Neither package supplies these capabilities.

If you are unsure, start with Library and add Service only when EvidenceHost or Issuer removes composition code you would otherwise maintain. Service is replaceable without changing KTP semantics. Neither package alone establishes application or deployment conformance, and neither is an enforcement point. A Trust Proof is not permission to perform an action.

Building a conforming KTP application

Conformance applies to a named, versioned application and its deployment, not to Library or Service by themselves. Neither package has a Basic, Standard, or Full mode, and the levels are cumulative: Standard includes Basic, and Full includes Standard. The Library contract matrix states what Library actually implements; the immutable KTP-Conformance v2.1.0 defines the controlling requirements. This table is orientation, not a complete requirements, certification, or remaining-gap checklist.

Target Capabilities the assembled application and deployment must provide
Basic An operational Oracle interface and product-owned evidence sources; secure key and Trust Proof lifecycle; a real PEP that intercepts every protected request, validates proofs, enforces the Zeroth Law before the protected effect, and logs the result; queryable decision records retained for at least 30 days; unique agent identities and proof obtain, present, refresh, and denial behavior; conservative failure handling; and published evidence for the required Basic tests.
Standard Everything in Basic, plus a three-or-more-node Oracle mesh with 2-of-3 threshold signing; all six weighted Risk Factors and the independent Soul veto across three risk domains; velocity, lineage, Proof of Resilience, sponsorship, and federation behavior; five-tier and Soul enforcement with graceful degradation; tamper-evident Decision Geometry, audit queries, one-year decision retention, and seven-year Soul-veto retention; full trajectory behavior; automated key rotation; and published Standard test evidence.
Full Everything in Standard, plus at least five Oracle nodes across at least three regions, 3-of-5 threshold signing, real-time consensus, and sub-second proof refresh; redundant failover sensing and Indigenous Data Sovereignty controls; all-zone layered enforcement within the required latency; externally anchored, multi-region records with seven-year retention and forensic reconstruction; HSM-backed keys and complete identity, attestation, and extended-proof behavior; formal security review, penetration testing, incident-response and recovery procedures; and third-party certification.

Service can reduce synchronous composition code; it does not satisfy or waive any conformance obligation. Package tests and released vectors establish only the named package behaviors. An unqualified Basic, Standard, or Full claim requires satisfying every applicable requirement and passing 100% of the required tests for that level. Under v2.1.0, documented deviations support only a clearly identified partial-compliance claim.

The tagged v2.1.0 corpus has cross-document inconsistencies affecting level boundaries, including Basic inputs and Soul, recorder chaining, proof lifetimes, Standard HSM requirements, Full post-quantum timing, and the relationship between six weighted factors and the independent Soul veto. Upstream issues #154 and #155 propose a single Core semantic contract and component-scoped conformance claims. Until those proposals are adopted in an immutable specification, an application must assess the complete v2.1.0 tag, document its interpretations, and avoid representing this summary as certification evidence.

Looking ahead (non-normative): Upstream issue #182 is an open proposal for KTP v3.0.0 ("Ostrom"), with a planned—not committed—tag date of December 10, 2026. Its proposed release set includes the still-open #154 and #155 work. The tag is intended to wait until applicable review floors clear, required pull requests are green, and required release evidence is complete. Until an immutable v3 tag exists and these projects separately review and adopt it, they remain pinned to KTP v2.1.0.

Install

Python 3.11 or newer is required; the routinely tested support set is CPython 3.11 through 3.15. When version 2.1.0 appears on the PyPI project page, install it in a local virtual environment; its compatible Library dependency is installed automatically:

python3 -m venv .venv
.venv/bin/python -m pip install 'kinetic-trust-service==2.1.0'

For unreleased changes—or until the first release appears on PyPI—use sibling kinetic-trust-service and kinetic-trust-library checkouts. Run from the Service checkout, installing Library first:

python3 -m venv .venv
.venv/bin/python -m pip install ../kinetic-trust-library
.venv/bin/python -m pip install .

Library and Service package major.minor versions track the implemented KTP RFC series, while each package advances patch versions independently. Service 2.1.0 depends on kinetic-trust-library>=2.1.0,<2.2.0 and adds no other runtime dependencies or optional crypto dependency. Both packages remain pinned to the immutable KTP v2.1.0 specification tag; a package patch release does not imply a new KTP specification version. PyCA Cryptography is needed only when a consumer chooses Library's optional PyCA crypto adapter. The Python interpreter running the library is sufficient; no separate interpreter component is required.

Direct evidence injection

The product supplies product_declarations: a tuple of complete, product- or adapter-owned Library ObservationDeclaration values. These include source identity, sequence, class-specific measurement facts, domain, and times; see Library's declaration documentation and the declaration model. The product owns external clients, configuration, credentials, and source authenticity and completeness. Service neither creates nor repairs semantic evidence.

from datetime import datetime, timezone

from kinetic_trust_library.models.evidence import ObservationDeclaration
from kinetic_trust_service import EvidenceHost, EvidenceQuery


class ProductEvidenceAdapter:
    def __init__(
        self,
        declarations: tuple[ObservationDeclaration, ...],
    ) -> None:
        self._declarations = declarations

    @property
    def adapter_id(self) -> str:
        return "adapter:product-evidence"

    def collect(
        self,
        query: EvidenceQuery,
        /,
    ) -> tuple[ObservationDeclaration, ...]:
        return self._declarations


host = EvidenceHost((ProductEvidenceAdapter(product_declarations),))
observations = host.collect(
    EvidenceQuery(
        operation_id="operation:example:1",
        subject="urn:agent:example",
        cutoff=datetime(2026, 10, 7, 12, 0, tzinfo=timezone.utc),
    )
)

This is an integration skeleton: product_declarations must already exist. EvidenceQuery carries an operational request, not evidence. adapter_id identifies an integration and is never inferred as a declaration's source_id. EvidenceHost calls adapters in registration order and stops at the first failure, raising EvidenceAdapterError with that adapter's ID. It provides no retry, evidence repair, or source-health inference.

One-evaluation issuance

The product assembles a complete Library EvaluationRequest as request, a ProofIntent as proof_intent, and a configured Library TrustProofs facade as proofs with a caller-owned ProofSigner as signer. See Library's evaluation and proof examples. ProofIntent supplies proof ID, resource, context hash, trajectory ID, and requested lifetime; Library derives decision identity and issuance time from the evaluation and bounds expiry.

from kinetic_trust_service import (
    EvaluatedWithoutProof,
    IssuedProof,
    Issuer,
    RejectedIssuance,
)

outcome = Issuer(proofs).issue(
    request,
    proof=proof_intent,
    signer=signer,
)

if type(outcome) is RejectedIssuance:
    rejection = outcome.rejection
elif type(outcome) is EvaluatedWithoutProof:
    evaluation = outcome.evaluation
    core_capacity = evaluation.core_capacity
    envelope = evaluation.envelope
    record = outcome.record
else:
    assert type(outcome) is IssuedProof
    evaluation = outcome.evaluation
    core_capacity = evaluation.core_capacity
    envelope = evaluation.envelope
    record = outcome.record
    proof_token = outcome.proof

Issuer evaluates once. A rejected request returns RejectedIssuance without a record or proof. A valid evaluation produces Library's deterministic DecisionRecord; non-clear Soul assessments return EvaluatedWithoutProof, while Soul-clear evaluations proceed to proof issuance and return IssuedProof. Operational errors propagate to the caller, which owns recovery and retry/reconciliation.

evaluation.core_capacity (Core Capacity Result) and evaluation.envelope (Kinetic Envelope Result) are separate returned facts, not one combined decision. On the Soul short path, record.core_capacity_digest and record.capacity_relation are None.

A Soul-clear evaluation can receive a proof even when Envelope supervision is SILENT_VETO. Proof is not permission. These outcomes and returned records do not establish storage, acceptance, execution, or enforcement. The product decides whether and how to store results, recover from operational errors, enforce policy, or execute actions.

Ownership boundary

Library owns RFC-faithful KTP-Core semantics, deterministic evaluation and proof rules, and the returned DecisionRecord. Service owns only replaceable synchronous composition. The product owns source authenticity/completeness, configuration/credentials, storage/retention/transport, retry/reconciliation, observability, deployment, execution, enforcement, and human interaction.

Library provides independent Trajectory parsing and assessment; Service does not wrap it or operate a chain, and products may call Library directly.

Service provides no network server, background process, discovery mechanism, configuration system, persistence, retry loop, or action execution. See project terminology for the vocabulary and boundary.

Test a checkout

The supported checkout test installs a wheel built from the Library checkout under review; it does not add sibling Library source to PYTHONPATH:

LIBRARY_CHECKOUT=/absolute/path/to/kinetic-trust-library
WORK_DIR=$(mktemp -d)
python3 -m venv "$WORK_DIR/venv"
"$WORK_DIR/venv/bin/python" -m pip install build==1.5.0
"$WORK_DIR/venv/bin/python" -m build --wheel \
  --outdir "$WORK_DIR/library-dist" "$LIBRARY_CHECKOUT"
"$WORK_DIR/venv/bin/python" -m pip install --no-index --no-deps \
  "$WORK_DIR/library-dist/kinetic_trust_library-2.1.0-py3-none-any.whl"
PYTHONDONTWRITEBYTECODE=1 PYTHONPATH=src \
  "$WORK_DIR/venv/bin/python" -m unittest discover -s tests -t . -v

The suite does not require PyCA. Products choosing Library's optional PyCA provider install and test it separately.

Maintainers preparing a package publication must follow the PyPI release procedure.

Contributing and security

Read CONTRIBUTING.md. Community participation follows CODE_OF_CONDUCT.md. Report vulnerabilities privately as described in SECURITY.md, never in a public issue. Protocol questions belong in the official KTP Discussions area.

Metadata

Release files for kinetic-trust-service 2.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kinetic-trust-service 2.1.0
File Size Uploaded Provenance
kinetic_trust_service-2.1.0.tar.gz 14.3 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for kinetic-trust-service 2.1.0
File Interpreter ABI Platform
kinetic_trust_service-2.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 29.3 kB

Release files / kinetic_trust_service-2.1.0.tar.gz

Download URL kinetic_trust_service-2.1.0.tar.gz
Size 14.3 kB
Tags Source
SHA-256 checksum
How to use checksums
827d02c4bb240ad1c798f28a49325341a7577244e5a441c2576ae5d0c400e7ed
BLAKE2b-256 checksum
How to use checksums
a3318d85f755e02a4a7315935579b574020ad08d04892f9134ebfb7c0de8b88b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

Release files / kinetic_trust_service-2.1.0-py3-none-any.whl

Download URL kinetic_trust_service-2.1.0-py3-none-any.whl
Size 15.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
15e38dbdc061ca593b77830f26a1ef80d95dfb1cc00788c67e08a5dd9feccf81
BLAKE2b-256 checksum
How to use checksums
c4acc7a47089c23d3f01ba488449a0517d09dafcb87d7f78300b71f28486f52c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

Security for kinetic-trust-service 2.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for kinetic_trust_service-2.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 21, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page