<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jb</title>
    <description>The latest articles on DEV Community by Jb (@arrotu).</description>
    <link>https://dev.to/arrotu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3826591%2F785d692a-b7fd-4068-b17d-377b673b4267.png</url>
      <title>DEV Community: Jb</title>
      <link>https://dev.to/arrotu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arrotu"/>
    <language>en</language>
    <item>
      <title>Demonstrable, Not Documented: What Regulators Are Actually Asking For, and What It Takes to Answer</title>
      <dc:creator>Jb</dc:creator>
      <pubDate>Fri, 14 Aug 2026 10:02:33 +0000</pubDate>
      <link>https://dev.to/arrotu/demonstrable-not-documented-what-regulators-are-actually-asking-for-and-what-it-takes-to-answer-mf0</link>
      <guid>https://dev.to/arrotu/demonstrable-not-documented-what-regulators-are-actually-asking-for-and-what-it-takes-to-answer-mf0</guid>
      <description>&lt;p&gt;For years, AI governance has been treated primarily as a documentation problem.&lt;/p&gt;

&lt;p&gt;Write the policy.&lt;/p&gt;

&lt;p&gt;Record the model owner.&lt;/p&gt;

&lt;p&gt;Complete the risk assessment.&lt;/p&gt;

&lt;p&gt;Document human oversight.&lt;/p&gt;

&lt;p&gt;Keep the logs.&lt;/p&gt;

&lt;p&gt;Show the auditor the dashboard.&lt;/p&gt;

&lt;p&gt;All of those things matter.&lt;/p&gt;

&lt;p&gt;But across regulation, standards, accountability regimes and litigation, a different expectation is becoming visible:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It is no longer enough to document what was supposed to happen. Organisations increasingly need to demonstrate what actually happened.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Those are not the same thing.&lt;/p&gt;

&lt;p&gt;A policy can show that human oversight was required.&lt;/p&gt;

&lt;p&gt;It cannot, by itself, show what a human actually saw during one specific decision, whether they intervened, what the AI produced before that intervention, or whether the record being reviewed six months later is the same record that existed when the decision was made.&lt;/p&gt;

&lt;p&gt;A governance dashboard can show that a control exists.&lt;/p&gt;

&lt;p&gt;It cannot necessarily demonstrate that the control operated during the execution now being challenged.&lt;/p&gt;

&lt;p&gt;An internal log can show what a system recorded.&lt;/p&gt;

&lt;p&gt;It does not automatically give somebody outside the organisation a reason to trust that the record has remained unchanged.&lt;/p&gt;

&lt;p&gt;This distinction between &lt;strong&gt;documented compliance and demonstrable compliance&lt;/strong&gt; is becoming increasingly important.&lt;/p&gt;

&lt;p&gt;What makes it particularly interesting is that the pressure is coming from several directions at once.&lt;/p&gt;

&lt;h2&gt;
  
  
  Different regimes, similar direction
&lt;/h2&gt;

&lt;p&gt;There is no global regulation saying that every AI execution must produce a cryptographically verifiable record.&lt;/p&gt;

&lt;p&gt;That would be an overstatement.&lt;/p&gt;

&lt;p&gt;The EU AI Act does not prescribe a particular cryptographic evidence architecture.&lt;/p&gt;

&lt;p&gt;NIST does not require Certified Execution Records.&lt;/p&gt;

&lt;p&gt;ISO/IEC 42001 does not tell organisations which hashing algorithm to use.&lt;/p&gt;

&lt;p&gt;The UK's Senior Managers and Certification Regime does not require banks to cryptographically certify AI decisions.&lt;/p&gt;

&lt;p&gt;US law does not impose one common AI evidence protocol.&lt;/p&gt;

&lt;p&gt;These frameworks were created for different purposes.&lt;/p&gt;

&lt;p&gt;But when you look at the practical questions they create for organisations, a pattern appears.&lt;/p&gt;

&lt;p&gt;The language is different.&lt;/p&gt;

&lt;p&gt;The legal mechanisms are different.&lt;/p&gt;

&lt;p&gt;The sectors are different.&lt;/p&gt;

&lt;p&gt;The underlying question keeps moving in the same direction:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can you demonstrate what happened?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The EU AI Act: record the system, then make oversight real
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://ai-act-service-desk.ec.europa.eu/en/ai-act/article-12" rel="noopener noreferrer"&gt;Article 12 of the EU AI Act&lt;/a&gt; requires high-risk AI systems to technically allow for the automatic recording of events over the lifetime of the system.&lt;/p&gt;

&lt;p&gt;The regulation explicitly connects those logging capabilities with traceability, post-market monitoring and monitoring the operation of high-risk systems.&lt;/p&gt;

&lt;p&gt;That already moves the conversation beyond simply knowing which model an organisation deployed.&lt;/p&gt;

&lt;p&gt;There must be a record of relevant events during operation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ai-act-service-desk.ec.europa.eu/en/ai-act/article-14" rel="noopener noreferrer"&gt;Article 14&lt;/a&gt; approaches the problem from another direction.&lt;/p&gt;

&lt;p&gt;High-risk AI systems must be designed so that natural persons can effectively oversee them.&lt;/p&gt;

&lt;p&gt;Depending on the context, those people must be able to understand relevant capabilities and limitations, monitor operation, detect anomalies, interpret outputs, avoid over-reliance on AI, disregard or override outputs, and intervene where necessary.&lt;/p&gt;

&lt;p&gt;Article 14 does not say every human intervention needs a cryptographic certificate.&lt;/p&gt;

&lt;p&gt;Article 12 does not prescribe one particular evidence format.&lt;/p&gt;

&lt;p&gt;But put the two together and a practical question appears:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you say meaningful human oversight existed, what evidence shows what the human was actually overseeing?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What did the system produce?&lt;/p&gt;

&lt;p&gt;What information was available at that point?&lt;/p&gt;

&lt;p&gt;Was the recommendation accepted?&lt;/p&gt;

&lt;p&gt;Was it overridden?&lt;/p&gt;

&lt;p&gt;What system or model version was involved?&lt;/p&gt;

&lt;p&gt;What happened immediately before and after the decision?&lt;/p&gt;

&lt;p&gt;And is the record being presented today the same record that existed then?&lt;/p&gt;

&lt;p&gt;That is where the difference between documenting a control and demonstrating its operation becomes important.&lt;/p&gt;

&lt;p&gt;The application timetable has also changed.&lt;/p&gt;

&lt;p&gt;Following &lt;a href="https://eur-lex.europa.eu/eli/reg/2026/1744/oj/eng" rel="noopener noreferrer"&gt;Regulation (EU) 2026/1744&lt;/a&gt;, the amended calendar now sets the relevant high-risk requirements for systems classified under Article 6(2) and Annex III from &lt;strong&gt;2 December 2027&lt;/strong&gt;, while the corresponding requirements for high-risk systems embedded in regulated products under Article 6(1) apply from &lt;strong&gt;2 August 2028&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That gives organisations more time.&lt;/p&gt;

&lt;p&gt;It does not remove the evidence problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  NIST: traceability has to survive beyond the engineering team
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://www.nist.gov/itl/ai-risk-management-framework" rel="noopener noreferrer"&gt;NIST AI Risk Management Framework&lt;/a&gt; is voluntary rather than law.&lt;/p&gt;

&lt;p&gt;But the &lt;a href="https://airc.nist.gov/airmf-resources/playbook/" rel="noopener noreferrer"&gt;AI RMF Playbook&lt;/a&gt; points in a remarkably similar direction.&lt;/p&gt;

&lt;p&gt;NIST asks organisations to consider mechanisms that facilitate AI system auditability, including traceability of the development process, data sourcing, and logging system processes and outcomes.&lt;/p&gt;

&lt;p&gt;It also explicitly asks whether an AI system can be &lt;strong&gt;audited by independent third parties&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That distinction matters.&lt;/p&gt;

&lt;p&gt;Operational teams already collect enormous amounts of information.&lt;/p&gt;

&lt;p&gt;Logs.&lt;/p&gt;

&lt;p&gt;Traces.&lt;/p&gt;

&lt;p&gt;Metrics.&lt;/p&gt;

&lt;p&gt;Alerts.&lt;/p&gt;

&lt;p&gt;Model-performance data.&lt;/p&gt;

&lt;p&gt;Those are important for operating AI systems safely and reliably.&lt;/p&gt;

&lt;p&gt;But a system being observable to its operator is not the same as its evidence being independently checkable by another party.&lt;/p&gt;

&lt;p&gt;NIST does not require cryptographic execution evidence.&lt;/p&gt;

&lt;p&gt;That is not the claim.&lt;/p&gt;

&lt;p&gt;The important point is that auditability has to survive beyond the engineering team that operates the system.&lt;/p&gt;

&lt;p&gt;At some point, somebody outside that trust boundary may need to examine what happened.&lt;/p&gt;

&lt;h2&gt;
  
  
  ISO/IEC 42001: evidence that a management system is operating
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.iso.org/standard/42001" rel="noopener noreferrer"&gt;ISO/IEC 42001&lt;/a&gt; approaches AI from the management-system side.&lt;/p&gt;

&lt;p&gt;It specifies requirements for establishing, implementing, maintaining and continually improving an Artificial Intelligence Management System.&lt;/p&gt;

&lt;p&gt;That includes areas such as responsibilities, policies, AI risk management, data governance, lifecycle controls, monitoring and performance evaluation.&lt;/p&gt;

&lt;p&gt;The standard is broader than execution evidence.&lt;/p&gt;

&lt;p&gt;It should remain broader.&lt;/p&gt;

&lt;p&gt;But management-system assurance has never been only about having the correct policy document.&lt;/p&gt;

&lt;p&gt;ISO itself explains that an organisation claiming conformance with a management-system standard needs evidence that it is meeting the relevant requirements, typically gathered through audits. Where an organisation chooses ISO/IEC 42001 certification, that certification is performed by an independent certification body, not by ISO itself.&lt;/p&gt;

&lt;p&gt;Now imagine a financial institution has a policy stating:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;AI-assisted credit decisions below a defined confidence threshold require human review.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The policy establishes the rule.&lt;/p&gt;

&lt;p&gt;The interesting question during an audit is whether the organisation can show what happened when that rule should have applied.&lt;/p&gt;

&lt;p&gt;Which execution crossed the threshold?&lt;/p&gt;

&lt;p&gt;What recommendation did the system produce?&lt;/p&gt;

&lt;p&gt;What information was available?&lt;/p&gt;

&lt;p&gt;Was the case routed correctly?&lt;/p&gt;

&lt;p&gt;Did somebody review it?&lt;/p&gt;

&lt;p&gt;Was the recommendation accepted or overridden?&lt;/p&gt;

&lt;p&gt;Which policy version applied at the time?&lt;/p&gt;

&lt;p&gt;The policy tells you what should happen.&lt;/p&gt;

&lt;p&gt;Evidence tells you what happened when the policy met a real execution.&lt;/p&gt;

&lt;p&gt;That distinction becomes more important as AI performs a larger part of the processes those management systems are supposed to govern.&lt;/p&gt;

&lt;h2&gt;
  
  
  SM&amp;amp;CR: accountability still has a name attached to it
&lt;/h2&gt;

&lt;p&gt;UK financial services introduces another dimension.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://www.fca.org.uk/firms/senior-managers-and-certification-regime/senior-managers-regime" rel="noopener noreferrer"&gt;Senior Managers and Certification Regime&lt;/a&gt; is not an AI regulation.&lt;/p&gt;

&lt;p&gt;It does not require cryptographic AI evidence.&lt;/p&gt;

&lt;p&gt;Its relevance here is accountability.&lt;/p&gt;

&lt;p&gt;Senior Managers have Statements of Responsibilities identifying what they are responsible and accountable for.&lt;/p&gt;

&lt;p&gt;The FCA also places a Duty of Responsibility on Senior Managers and requires them to take reasonable steps in the areas for which they are responsible.&lt;/p&gt;

&lt;p&gt;Now introduce AI into a material workflow.&lt;/p&gt;

&lt;p&gt;Credit.&lt;/p&gt;

&lt;p&gt;Fraud.&lt;/p&gt;

&lt;p&gt;Insurance.&lt;/p&gt;

&lt;p&gt;Financial crime.&lt;/p&gt;

&lt;p&gt;Customer treatment.&lt;/p&gt;

&lt;p&gt;Market surveillance.&lt;/p&gt;

&lt;p&gt;Trading controls.&lt;/p&gt;

&lt;p&gt;The accountable person does not disappear because software performs part of the decision-making.&lt;/p&gt;

&lt;p&gt;A different problem emerges.&lt;/p&gt;

&lt;p&gt;The person retains responsibility while becoming further removed from individual executions inside the process.&lt;/p&gt;

&lt;p&gt;A Senior Manager may be able to explain why a model was approved.&lt;/p&gt;

&lt;p&gt;They may be able to show the governance framework.&lt;/p&gt;

&lt;p&gt;They may be able to describe the controls.&lt;/p&gt;

&lt;p&gt;But if one particular decision is challenged months later, can the organisation establish what the system actually recorded at that decision point?&lt;/p&gt;

&lt;p&gt;To be clear, this is an inference from the accountability structure of SM&amp;amp;CR.&lt;/p&gt;

&lt;p&gt;It is &lt;strong&gt;not&lt;/strong&gt; a claim that SM&amp;amp;CR requires cryptographically verifiable execution records.&lt;/p&gt;

&lt;p&gt;But the accountability logic is difficult to ignore.&lt;/p&gt;

&lt;p&gt;Named responsibility becomes harder to discharge when the person who owns the process cannot establish what happened inside the execution they nominally own.&lt;/p&gt;

&lt;h2&gt;
  
  
  The United States: existing law can create the same evidence problem
&lt;/h2&gt;

&lt;p&gt;The US picture is different again.&lt;/p&gt;

&lt;p&gt;Rather than one horizontal federal regime equivalent to the EU AI Act, organisations face a mixture of existing statutes, sector rules, agency enforcement, state requirements and litigation.&lt;/p&gt;

&lt;p&gt;That can create the same evidentiary pressure through a different route.&lt;/p&gt;

&lt;p&gt;The question may arrive not as:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Are you compliant with the AI Act?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;but as:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“This decision affected me. Explain why it happened.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Credit provides a useful example.&lt;/p&gt;

&lt;p&gt;Under current &lt;a href="https://www.consumerfinance.gov/rules-policy/regulations/1002/9" rel="noopener noreferrer"&gt;Regulation B, 12 CFR §1002.9&lt;/a&gt;, a creditor taking adverse action must provide the principal reasons for that decision. The official interpretation states that those specific reasons must relate to and accurately describe the factors actually considered or scored by the creditor.&lt;/p&gt;

&lt;p&gt;That obligation matters whether the decision process is simple or technically complex.&lt;/p&gt;

&lt;p&gt;There is an important historical clarification here.&lt;/p&gt;

&lt;p&gt;The CFPB previously issued Circular 2022-03 specifically addressing adverse-action notices and complex algorithms.&lt;/p&gt;

&lt;p&gt;That circular was &lt;strong&gt;withdrawn on 12 May 2025&lt;/strong&gt; as part of a wider withdrawal of CFPB guidance.&lt;/p&gt;

&lt;p&gt;The circular should therefore not be cited as current guidance.&lt;/p&gt;

&lt;p&gt;But withdrawing the circular did not remove the underlying Regulation B requirement to provide specific principal reasons for adverse action.&lt;/p&gt;

&lt;p&gt;That distinction is useful because it illustrates the broader point.&lt;/p&gt;

&lt;p&gt;AI-specific policy can change.&lt;/p&gt;

&lt;p&gt;The underlying need to account for consequential decisions may remain.&lt;/p&gt;

&lt;p&gt;Employment provides another example of how existing law can reach automated decision systems.&lt;/p&gt;

&lt;p&gt;In the &lt;a href="https://www.eeoc.gov/newsroom/itutorgroup-pay-365000-settle-eeoc-discriminatory-hiring-suit" rel="noopener noreferrer"&gt;iTutorGroup case&lt;/a&gt;, the US Equal Employment Opportunity Commission alleged that the company's tutor application software was programmed to automatically reject female applicants aged 55 or older and male applicants aged 60 or older. The case settled for $365,000 plus other relief.&lt;/p&gt;

&lt;p&gt;It is more accurate to describe this as an &lt;strong&gt;automated hiring software case&lt;/strong&gt; than as proof of some general AI-specific enforcement regime.&lt;/p&gt;

&lt;p&gt;But that is precisely why it is relevant.&lt;/p&gt;

&lt;p&gt;Existing legal duties do not necessarily disappear because software performs the decision.&lt;/p&gt;

&lt;p&gt;When the dispute concerns one particular outcome, explaining how a system generally works is different from establishing what happened in that specific case.&lt;/p&gt;

&lt;h1&gt;
  
  
  The structural gap in today's evidence
&lt;/h1&gt;

&lt;p&gt;Across all of these regimes, organisations already produce enormous quantities of documentation.&lt;/p&gt;

&lt;p&gt;Risk registers.&lt;/p&gt;

&lt;p&gt;Model cards.&lt;/p&gt;

&lt;p&gt;Policies.&lt;/p&gt;

&lt;p&gt;Audit logs.&lt;/p&gt;

&lt;p&gt;Observability traces.&lt;/p&gt;

&lt;p&gt;Approval workflows.&lt;/p&gt;

&lt;p&gt;Governance dashboards.&lt;/p&gt;

&lt;p&gt;Incident reports.&lt;/p&gt;

&lt;p&gt;Model validation documents.&lt;/p&gt;

&lt;p&gt;None of these are useless.&lt;/p&gt;

&lt;p&gt;Most are necessary.&lt;/p&gt;

&lt;p&gt;The problem is more structural.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Almost all of the evidence is produced, stored and presented by the same organisation whose system is being examined.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That does not mean the evidence is false.&lt;/p&gt;

&lt;p&gt;It means the evidence has a trust boundary.&lt;/p&gt;

&lt;p&gt;Imagine a bank presents an internal record showing that an AI-assisted recommendation was produced at 14:32 on 6 February.&lt;/p&gt;

&lt;p&gt;Who produced the record?&lt;/p&gt;

&lt;p&gt;The bank's system.&lt;/p&gt;

&lt;p&gt;Who stored it?&lt;/p&gt;

&lt;p&gt;The bank.&lt;/p&gt;

&lt;p&gt;Who controls the database?&lt;/p&gt;

&lt;p&gt;The bank.&lt;/p&gt;

&lt;p&gt;Who generated the export?&lt;/p&gt;

&lt;p&gt;The bank.&lt;/p&gt;

&lt;p&gt;Who is now asking the external reviewer to rely on it?&lt;/p&gt;

&lt;p&gt;The bank.&lt;/p&gt;

&lt;p&gt;Again, that does not make the record dishonest.&lt;/p&gt;

&lt;p&gt;And some organisations already use strong append-only, WORM or externally anchored logging systems that materially improve this position.&lt;/p&gt;

&lt;p&gt;But the fundamental question remains:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What does the examining party have to trust?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The organisation cannot become an independent third party to itself.&lt;/p&gt;

&lt;p&gt;And this distinction becomes even more important when cryptography is introduced.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A cryptographic signature produced entirely inside the system being questioned can authenticate that system's assertion. It does not create independent corroboration.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is subtle, but important.&lt;/p&gt;

&lt;p&gt;A digital signature can show that a particular private key signed a particular payload.&lt;/p&gt;

&lt;p&gt;A hash can show whether protected content has changed relative to a previously established digest.&lt;/p&gt;

&lt;p&gt;Neither automatically proves that the original record was complete, truthful, or faithfully captured from the underlying event.&lt;/p&gt;

&lt;p&gt;A useful way to think about it is this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Operator-controlled evidence is testimony from the system. Independently verifiable evidence gives somebody else a way to check the testimony.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While everyone trusts everyone, that distinction may not matter very much.&lt;/p&gt;

&lt;p&gt;When a customer disputes a decision, an insurer challenges an outcome, a regulator investigates an incident, or litigation begins, the trust assumption changes.&lt;/p&gt;

&lt;p&gt;The evidence is now being examined by somebody who may explicitly &lt;strong&gt;not trust the system that produced it&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That is the point where many AI audit trails become weaker than organisations expect.&lt;/p&gt;

&lt;h1&gt;
  
  
  Agents make reconstruction harder
&lt;/h1&gt;

&lt;p&gt;The problem becomes more difficult as AI becomes agentic.&lt;/p&gt;

&lt;p&gt;A conventional model invocation may look roughly like this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;input → model → output&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An agent workflow can look more like this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;input → model → retrieval → tool call → another model → external API → policy check → another agent → action&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Some steps are deterministic.&lt;/p&gt;

&lt;p&gt;Some are probabilistic.&lt;/p&gt;

&lt;p&gt;Some depend on external systems whose state changes.&lt;/p&gt;

&lt;p&gt;Some happen inside infrastructure operated by different vendors.&lt;/p&gt;

&lt;p&gt;Some may never be directly visible to the human ultimately accountable for the outcome.&lt;/p&gt;

&lt;p&gt;The final decision may be straightforward.&lt;/p&gt;

&lt;p&gt;The path that produced it may not be.&lt;/p&gt;

&lt;p&gt;This weakens one of the traditional fallbacks in governance.&lt;/p&gt;

&lt;p&gt;Historically, when the record was incomplete, organisations could often ask the person who made the decision.&lt;/p&gt;

&lt;p&gt;With increasingly autonomous systems, that person may no longer exist in quite the same way.&lt;/p&gt;

&lt;p&gt;A human may approve the framework.&lt;/p&gt;

&lt;p&gt;A human may supervise exceptions.&lt;/p&gt;

&lt;p&gt;A human may own the business process.&lt;/p&gt;

&lt;p&gt;But software may perform dozens of intermediate actions before anything reaches them.&lt;/p&gt;

&lt;p&gt;So months later, asking the accountable person what happened may not answer very much.&lt;/p&gt;

&lt;p&gt;The evidentiary question shifts from:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who remembers what happened?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What record survived what happened?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is a significant change.&lt;/p&gt;

&lt;h1&gt;
  
  
  What would a record need to survive challenge?
&lt;/h1&gt;

&lt;p&gt;This is where the discussion should move away from products.&lt;/p&gt;

&lt;p&gt;Before asking what software to buy, ask what properties the evidence itself needs.&lt;/p&gt;

&lt;p&gt;If an AI execution record is expected to survive external scrutiny, there are at least five properties worth considering.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Tamper-evidence over a defined protected set
&lt;/h2&gt;

&lt;p&gt;Saying that a record is “immutable” is not enough.&lt;/p&gt;

&lt;p&gt;What exactly is protected?&lt;/p&gt;

&lt;p&gt;The input?&lt;/p&gt;

&lt;p&gt;The output?&lt;/p&gt;

&lt;p&gt;The model identifier?&lt;/p&gt;

&lt;p&gt;Parameters?&lt;/p&gt;

&lt;p&gt;Tool responses?&lt;/p&gt;

&lt;p&gt;Human review?&lt;/p&gt;

&lt;p&gt;The execution sequence?&lt;/p&gt;

&lt;p&gt;The policy version?&lt;/p&gt;

&lt;p&gt;A credible evidence format should explicitly define its protected set.&lt;/p&gt;

&lt;p&gt;If a protected field changes, verification should detect it.&lt;/p&gt;

&lt;p&gt;Just as importantly, fields outside that integrity boundary should be clearly identified.&lt;/p&gt;

&lt;p&gt;Otherwise two people can examine the same artifact while assuming different things were actually protected.&lt;/p&gt;

&lt;p&gt;Tamper-evidence is not a vague property of “the record.”&lt;/p&gt;

&lt;p&gt;It has a scope.&lt;/p&gt;

&lt;p&gt;That scope needs to be explicit.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Independent verifiability
&lt;/h2&gt;

&lt;p&gt;This is the property many internal audit trails are missing.&lt;/p&gt;

&lt;p&gt;A third party should be able to verify the relevant integrity claims without relying solely on the organisation whose system produced the record.&lt;/p&gt;

&lt;p&gt;That does not mean eliminating all trust.&lt;/p&gt;

&lt;p&gt;No practical evidence architecture eliminates every trust assumption.&lt;/p&gt;

&lt;p&gt;It means making those assumptions visible.&lt;/p&gt;

&lt;p&gt;A verifier should be able to answer questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the integrity proof match the protected artifact?&lt;/li&gt;
&lt;li&gt;Is the signature valid?&lt;/li&gt;
&lt;li&gt;Which key signed it?&lt;/li&gt;
&lt;li&gt;What fields were protected?&lt;/li&gt;
&lt;li&gt;Has the execution chain changed?&lt;/li&gt;
&lt;li&gt;What verification material was used?&lt;/li&gt;
&lt;li&gt;If verification fails, why did it fail?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last point matters.&lt;/p&gt;

&lt;p&gt;A verification system that returns only a green badge is difficult to audit itself.&lt;/p&gt;

&lt;p&gt;Independent verification should be repeatable enough that two conforming verifiers examining the same artifact under the same rules reach the same result.&lt;/p&gt;

&lt;p&gt;A backend saying &lt;strong&gt;VALID&lt;/strong&gt; is an assertion.&lt;/p&gt;

&lt;p&gt;A verifier showing why the integrity checks pass is something different.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. An independent assertion of time
&lt;/h2&gt;

&lt;p&gt;A timestamp written by the application itself is weak evidence of when the record actually existed.&lt;/p&gt;

&lt;p&gt;The application controls the value.&lt;/p&gt;

&lt;p&gt;That becomes important when timing is part of the dispute.&lt;/p&gt;

&lt;p&gt;Was the record created when the execution happened?&lt;/p&gt;

&lt;p&gt;Or after the complaint arrived?&lt;/p&gt;

&lt;p&gt;Those are very different evidentiary positions.&lt;/p&gt;

&lt;p&gt;For higher-assurance records, an external time assertion can reduce dependence on the operator.&lt;/p&gt;

&lt;p&gt;Trusted timestamping, including mechanisms based on &lt;a href="https://www.rfc-editor.org/rfc/rfc3161" rel="noopener noreferrer"&gt;RFC 3161&lt;/a&gt;, is one established approach.&lt;/p&gt;

&lt;p&gt;The point is not that every AI execution requires an external timestamp.&lt;/p&gt;

&lt;p&gt;The point is that when time itself matters, the evidence should not rely exclusively on the party whose chronology is being questioned.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Portability
&lt;/h2&gt;

&lt;p&gt;Evidence should not disappear because a vendor relationship ends.&lt;/p&gt;

&lt;p&gt;A record expected to survive challenge should be capable of leaving the system that created it.&lt;/p&gt;

&lt;p&gt;That means portable artifacts.&lt;/p&gt;

&lt;p&gt;Published verification rules.&lt;/p&gt;

&lt;p&gt;Stable identifiers.&lt;/p&gt;

&lt;p&gt;Exportable trust material.&lt;/p&gt;

&lt;p&gt;Historical public keys where signatures are involved.&lt;/p&gt;

&lt;p&gt;A reviewer should not need an active subscription to the original SaaS platform simply to determine whether an old record remains intact.&lt;/p&gt;

&lt;p&gt;This becomes increasingly important as organisations change vendors, merge systems, replace models and retire infrastructure.&lt;/p&gt;

&lt;p&gt;Long-term accountability and vendor lock-in are uncomfortable partners.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Privacy
&lt;/h2&gt;

&lt;p&gt;There is one final requirement that is easy to overlook.&lt;/p&gt;

&lt;p&gt;The evidence cannot create a second data problem.&lt;/p&gt;

&lt;p&gt;Many AI workflows where evidence matters most involve highly sensitive information:&lt;/p&gt;

&lt;p&gt;financial data.&lt;/p&gt;

&lt;p&gt;medical records.&lt;/p&gt;

&lt;p&gt;customer communications.&lt;/p&gt;

&lt;p&gt;legal documents.&lt;/p&gt;

&lt;p&gt;identity information.&lt;/p&gt;

&lt;p&gt;internal investigations.&lt;/p&gt;

&lt;p&gt;commercially sensitive material.&lt;/p&gt;

&lt;p&gt;An evidence architecture that requires all of that information to be disclosed to every external verifier has solved one trust problem by creating another.&lt;/p&gt;

&lt;p&gt;Privacy therefore has to be part of the evidence model.&lt;/p&gt;

&lt;p&gt;Possible mechanisms include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;minimisation&lt;/li&gt;
&lt;li&gt;redaction&lt;/li&gt;
&lt;li&gt;hashing&lt;/li&gt;
&lt;li&gt;cryptographic commitments&lt;/li&gt;
&lt;li&gt;selective disclosure&lt;/li&gt;
&lt;li&gt;protected evidence packs&lt;/li&gt;
&lt;li&gt;controlled reviewer access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The exact mechanism can vary.&lt;/p&gt;

&lt;p&gt;The requirement is broader:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Producing evidence that a record exists and remains intact should not automatically require disclosing all of the sensitive data behind it.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Why a common specification matters
&lt;/h1&gt;

&lt;p&gt;None of these properties is individually new.&lt;/p&gt;

&lt;p&gt;Hashing exists.&lt;/p&gt;

&lt;p&gt;Digital signatures exist.&lt;/p&gt;

&lt;p&gt;Trusted timestamping exists.&lt;/p&gt;

&lt;p&gt;Canonical serialization exists.&lt;/p&gt;

&lt;p&gt;Redaction exists.&lt;/p&gt;

&lt;p&gt;Evidence packaging exists.&lt;/p&gt;

&lt;p&gt;The problem appears when every organisation implements them differently.&lt;/p&gt;

&lt;p&gt;One vendor hashes the entire JSON object.&lt;/p&gt;

&lt;p&gt;Another hashes selected fields.&lt;/p&gt;

&lt;p&gt;One changes serialization rules between software versions.&lt;/p&gt;

&lt;p&gt;Another signs a digest but does not retain historical verification keys.&lt;/p&gt;

&lt;p&gt;One stores an application timestamp in its own database and describes that as independent time.&lt;/p&gt;

&lt;p&gt;Another provides a downloadable artifact that only its own SaaS product can interpret.&lt;/p&gt;

&lt;p&gt;Another removes fields after sealing them without clearly defining what happens to the integrity boundary.&lt;/p&gt;

&lt;p&gt;Every one of these systems may call the result an “AI audit trail.”&lt;/p&gt;

&lt;p&gt;The artifacts remain incompatible.&lt;/p&gt;

&lt;p&gt;The verification semantics remain inconsistent.&lt;/p&gt;

&lt;p&gt;And the person examining the evidence has to understand a different trust model for every provider.&lt;/p&gt;

&lt;p&gt;That is why a common specification matters.&lt;/p&gt;

&lt;h1&gt;
  
  
  AIEF: define the evidence requirements before defining the vendor
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://aief.dev" rel="noopener noreferrer"&gt;AIEF, the AI Execution Framework&lt;/a&gt;, is an open, implementation-agnostic framework for verifiable AI execution evidence.&lt;/p&gt;

&lt;p&gt;Its current public specification is &lt;strong&gt;v0.2.5, Public Comment&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That is also the current canonical public name used by aief.dev and its suggested citation.&lt;/p&gt;

&lt;p&gt;AIEF does not define how AI should make decisions.&lt;/p&gt;

&lt;p&gt;It does not determine whether a model output was correct.&lt;/p&gt;

&lt;p&gt;It does not define fairness.&lt;/p&gt;

&lt;p&gt;It does not replace an AI governance programme.&lt;/p&gt;

&lt;p&gt;And it does not require one vendor's technical architecture.&lt;/p&gt;

&lt;p&gt;It asks a narrower question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What properties should an execution artifact have if another party may need to verify it later?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://aief.dev/spec/0.2.5" rel="noopener noreferrer"&gt;AIEF specification&lt;/a&gt; defines concepts including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;execution artifacts&lt;/li&gt;
&lt;li&gt;declared protected sets&lt;/li&gt;
&lt;li&gt;stable serialization&lt;/li&gt;
&lt;li&gt;tamper-evidence&lt;/li&gt;
&lt;li&gt;deterministic verification&lt;/li&gt;
&lt;li&gt;standardised PASS and FAIL outcomes with reason codes&lt;/li&gt;
&lt;li&gt;independent validation&lt;/li&gt;
&lt;li&gt;external dependency evidence&lt;/li&gt;
&lt;li&gt;chain integrity for multi-step workflows&lt;/li&gt;
&lt;li&gt;retention and portability&lt;/li&gt;
&lt;li&gt;privacy and redaction controls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For probabilistic AI systems, AIEF makes another important distinction.&lt;/p&gt;

&lt;p&gt;Verification is not:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Rerun the model and hope it produces the same answer.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AIEF uses a &lt;strong&gt;cache-as-truth&lt;/strong&gt; model.&lt;/p&gt;

&lt;p&gt;The recorded output is the historical object being audited.&lt;/p&gt;

&lt;p&gt;Verification checks the integrity of that recorded artifact rather than pretending a probabilistic model, an external API, or a changing retrieval system will necessarily reproduce the same historical result.&lt;/p&gt;

&lt;p&gt;AIEF also defines its boundary carefully.&lt;/p&gt;

&lt;p&gt;Successful verification can establish that protected fields remain consistent with the declared integrity proof.&lt;/p&gt;

&lt;p&gt;It does &lt;strong&gt;not&lt;/strong&gt; prove:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;that the decision was correct&lt;/li&gt;
&lt;li&gt;that the model was fair&lt;/li&gt;
&lt;li&gt;that the output was truthful&lt;/li&gt;
&lt;li&gt;that every relevant event was captured&lt;/li&gt;
&lt;li&gt;that the business decision was appropriate&lt;/li&gt;
&lt;li&gt;that the originating system acted in good faith&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last limitation is especially important.&lt;/p&gt;

&lt;p&gt;AIEF explicitly distinguishes &lt;strong&gt;artifact integrity&lt;/strong&gt; from &lt;strong&gt;artifact authenticity&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A perfectly intact artifact can still have been falsely issued in the first place.&lt;/p&gt;

&lt;p&gt;Higher-assurance situations may therefore require additional provenance, attestation, runtime trust, external timestamping or other mechanisms.&lt;/p&gt;

&lt;p&gt;A standard becomes more credible when it is explicit about what it does not prove.&lt;/p&gt;

&lt;p&gt;AIEF is published openly and invites comment from builders, auditors, regulators, academics and practitioners.&lt;/p&gt;

&lt;p&gt;Its &lt;a href="https://aief.dev/implementations" rel="noopener noreferrer"&gt;implementation registry&lt;/a&gt; is separate from the specification itself.&lt;/p&gt;

&lt;p&gt;That separation matters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AIEF defines the evidence model. Implementations are free to implement it differently.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  One implementation: NexArt
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://nexart.io" rel="noopener noreferrer"&gt;NexArt&lt;/a&gt; is one implementation listed in AIEF's implementation registry.&lt;/p&gt;

&lt;p&gt;The registry describes entries as factual and self-declared, and explicitly states that inclusion is not an endorsement.&lt;/p&gt;

&lt;p&gt;That is the correct relationship.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AIEF is the open framework. NexArt is an AI Evidence Layer and Verifiable Execution Infrastructure that implements this class of evidence in a production system.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NexArt represents individual executions as &lt;strong&gt;Certified Execution Records&lt;/strong&gt;, or CERs.&lt;/p&gt;

&lt;p&gt;Multi-step executions can be assembled into &lt;strong&gt;Project Bundles&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The evidence flow is conceptually straightforward:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;execution data → protected artifact → integrity anchor → attestation material → verification&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The distinction between those stages matters.&lt;/p&gt;

&lt;p&gt;The application or integration remains responsible for capture.&lt;/p&gt;

&lt;p&gt;NexArt does not independently prove that every relevant event was captured, or that application-supplied facts were truthful.&lt;/p&gt;

&lt;p&gt;What the evidence layer can establish is that the protected record has not subsequently changed without detection and, where attestation is present, that the corresponding signing key signed the relevant record.&lt;/p&gt;

&lt;h2&gt;
  
  
  The cryptography is ordinary on purpose
&lt;/h2&gt;

&lt;p&gt;NexArt CERs use SHA-256 certificate hashes over a defined protected projection.&lt;/p&gt;

&lt;p&gt;Canonicalization is protocol-bound.&lt;/p&gt;

&lt;p&gt;Current protocol 1.3.1 uses RFC 8785 JSON Canonicalization Scheme, while older supported records can use their earlier canonicalization profile.&lt;/p&gt;

&lt;p&gt;When a CER is node-certified, the NexArt attestation node adds an &lt;strong&gt;Ed25519-signed receipt&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The node publishes its verification key material publicly through a well-known endpoint so that signature checking does not require asking the originating application whether the signature is valid.&lt;/p&gt;

&lt;p&gt;As of this writing, the production node publicly identifies its operator as &lt;strong&gt;NexArt&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That is worth saying explicitly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Independent verification is not the same claim as independent node ownership.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The value is that a third party holding the evidence and authentic public-key material can perform the cryptographic checks independently of the organisation whose AI workflow produced the record.&lt;/p&gt;

&lt;p&gt;That is a narrower claim.&lt;/p&gt;

&lt;p&gt;It is also a more defensible one.&lt;/p&gt;

&lt;h2&gt;
  
  
  External time evidence
&lt;/h2&gt;

&lt;p&gt;NexArt also supports external RFC 3161 timestamp evidence as an additional verification layer.&lt;/p&gt;

&lt;p&gt;This should not be confused with the node's own &lt;code&gt;attestedAt&lt;/code&gt; time.&lt;/p&gt;

&lt;p&gt;A node-issued timestamp comes from the signing system itself.&lt;/p&gt;

&lt;p&gt;An RFC 3161 timestamp can provide a separate time-of-existence assertion from an external Time Stamp Authority.&lt;/p&gt;

&lt;p&gt;Timestamp state is record-specific, so a verifier should inspect whether external timestamp evidence is actually present rather than assume it from the existence of a CER.&lt;/p&gt;

&lt;p&gt;That is exactly the kind of distinction an evidence system should make visible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Confidential execution without putting raw input and output into the proof record
&lt;/h2&gt;

&lt;p&gt;Privacy creates another challenge.&lt;/p&gt;

&lt;p&gt;A financial institution may need to prove that a record has not changed while having no legal or commercial reason to disclose the customer's underlying data to the verifier.&lt;/p&gt;

&lt;p&gt;NexArt protocol 1.3.1 addresses this using &lt;strong&gt;HMAC-SHA256 commitment envelopes&lt;/strong&gt; for raw input and output.&lt;/p&gt;

&lt;p&gt;The implementation boundary is important.&lt;/p&gt;

&lt;p&gt;For 1.3.1, the client transmits the raw input and output to the NexArt attestation node over TLS.&lt;/p&gt;

&lt;p&gt;The node processes those values transiently and replaces them with cryptographic commitments before building the certified record.&lt;/p&gt;

&lt;p&gt;According to the current protocol documentation, the raw input and output are excluded from the certified snapshot and from the persistent proof record, and the certification flow is designed not to persist them.&lt;/p&gt;

&lt;p&gt;The resulting CER contains commitments rather than the plaintext input and output.&lt;/p&gt;

&lt;p&gt;This does &lt;strong&gt;not&lt;/strong&gt; mean every field in the record is confidential.&lt;/p&gt;

&lt;p&gt;Fields such as the prompt and model parameters can remain plaintext, so integrations still have to decide carefully what information belongs in each part of the evidence record.&lt;/p&gt;

&lt;p&gt;And NexArt does not claim that the raw values never cross the customer boundary.&lt;/p&gt;

&lt;p&gt;They do cross to the node over TLS in the documented 1.3.1 flow.&lt;/p&gt;

&lt;p&gt;That precision matters.&lt;/p&gt;

&lt;p&gt;The goal is not to turn “confidential execution” into a vague privacy slogan.&lt;/p&gt;

&lt;p&gt;It is to define exactly where plaintext exists, where it does not, and what remains independently verifiable afterward.&lt;/p&gt;

&lt;h1&gt;
  
  
  Check the evidence yourself
&lt;/h1&gt;

&lt;p&gt;The easiest way to understand independently verifiable evidence is to stop describing it and give somebody something they can inspect.&lt;/p&gt;

&lt;p&gt;A public NexArt record is identified by its certificate hash.&lt;/p&gt;

&lt;p&gt;One public sample used in a July 2026 public verification audit was:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sha256:2e9cfd2bdaa5125578722ed12508f5f5091cc7108bc4f87c94d835c841719082&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://verify.nexart.io/c/sha256%3A2e9cfd2bdaa5125578722ed12508f5f5091cc7108bc4f87c94d835c841719082" rel="noopener noreferrer"&gt;Open the record in the public verifier&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The July audit recorded:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SHA-256 integrity: PASS&lt;/li&gt;
&lt;li&gt;Ed25519 signature: PASS&lt;/li&gt;
&lt;li&gt;key source: public well-known key&lt;/li&gt;
&lt;li&gt;external timestamp authority: DigiCert&lt;/li&gt;
&lt;li&gt;RFC 3161 timestamp status: OK&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The public verification URL continues to resolve at the time of writing.&lt;/p&gt;

&lt;p&gt;Public record lookup requires no NexArt account or API key.&lt;/p&gt;

&lt;p&gt;You can also query the public resolver directly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;CERT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"sha256:2e9cfd2bdaa5125578722ed12508f5f5091cc7108bc4f87c94d835c841719082"&lt;/span&gt;

curl &lt;span class="nt"&gt;-fsS&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="s2"&gt;"https://node.nexart.io/v1/cer/public?certificate_hash=&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;CERT&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important point is not that a NexArt webpage displays the word &lt;strong&gt;Verified&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The useful property is that the evidence exposes the material needed to check its cryptographic claims against published verification rules and public keys.&lt;/p&gt;

&lt;p&gt;And the scope of that result needs to remain precise.&lt;/p&gt;

&lt;p&gt;Successful verification can establish that the protected record remains intact and that the relevant signing key signed it.&lt;/p&gt;

&lt;p&gt;Where valid external RFC 3161 evidence is present, it can also establish an external time-of-existence assertion.&lt;/p&gt;

&lt;p&gt;It does not prove the AI's answer was correct.&lt;/p&gt;

&lt;p&gt;It does not prove the underlying model call was independently observed.&lt;/p&gt;

&lt;p&gt;It does not prove the application's capture boundary was complete.&lt;/p&gt;

&lt;p&gt;It does not prove the decision was lawful, fair or appropriate.&lt;/p&gt;

&lt;p&gt;That is not a weakness in the definition.&lt;/p&gt;

&lt;p&gt;That is what makes the definition useful.&lt;/p&gt;

&lt;h1&gt;
  
  
  Documented compliance and demonstrable compliance are different things
&lt;/h1&gt;

&lt;p&gt;The AI governance industry has spent a lot of time helping organisations document what they intend to do.&lt;/p&gt;

&lt;p&gt;That work is necessary.&lt;/p&gt;

&lt;p&gt;Policies matter.&lt;/p&gt;

&lt;p&gt;Governance matters.&lt;/p&gt;

&lt;p&gt;Model validation matters.&lt;/p&gt;

&lt;p&gt;Human accountability matters.&lt;/p&gt;

&lt;p&gt;Logs matter.&lt;/p&gt;

&lt;p&gt;Observability matters.&lt;/p&gt;

&lt;p&gt;But as AI systems begin making and influencing more consequential decisions, another layer becomes increasingly important.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Evidence of what actually happened inside the defined capture boundary.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The regulatory regimes discussed here do not use identical language.&lt;/p&gt;

&lt;p&gt;They do not impose identical legal requirements.&lt;/p&gt;

&lt;p&gt;And none of them mandates AIEF, NexArt, Certified Execution Records or any particular cryptographic architecture.&lt;/p&gt;

&lt;p&gt;That is not the argument.&lt;/p&gt;

&lt;p&gt;The argument is simpler.&lt;/p&gt;

&lt;p&gt;Across record-keeping, human oversight, auditability, management-system assurance, named accountability and legal challenge, organisations are being pushed toward a stronger evidentiary position.&lt;/p&gt;

&lt;p&gt;From:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Here is our policy.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Here is what our records show happened.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And eventually from:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Here is what our system says happened.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Here is the evidence. Check it yourself.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is the difference between documented compliance and demonstrable compliance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The gap between the two is where a growing amount of AI risk now sits.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Further reading and primary sources
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The open framework
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://aief.dev" rel="noopener noreferrer"&gt;AIEF, AI Execution Framework&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aief.dev/spec/0.2.5" rel="noopener noreferrer"&gt;AIEF Specification v0.2.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aief.dev/implementations" rel="noopener noreferrer"&gt;AIEF implementations&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  NexArt implementation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://nexart.io" rel="noopener noreferrer"&gt;NexArt, AI Evidence Layer and Verifiable Execution Infrastructure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nexart.io/independent-verification" rel="noopener noreferrer"&gt;NexArt independent verification&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nexart.io" rel="noopener noreferrer"&gt;NexArt documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://verify.nexart.io" rel="noopener noreferrer"&gt;Public CER verifier&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Regulatory and standards sources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://ai-act-service-desk.ec.europa.eu/en/ai-act/article-12" rel="noopener noreferrer"&gt;EU AI Act Article 12: Record-keeping&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ai-act-service-desk.ec.europa.eu/en/ai-act/article-14" rel="noopener noreferrer"&gt;EU AI Act Article 14: Human oversight&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eur-lex.europa.eu/eli/reg/2026/1744/oj/eng" rel="noopener noreferrer"&gt;Regulation (EU) 2026/1744&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nist.gov/itl/ai-risk-management-framework" rel="noopener noreferrer"&gt;NIST AI Risk Management Framework&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://airc.nist.gov/airmf-resources/playbook/" rel="noopener noreferrer"&gt;NIST AI RMF Playbook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.iso.org/standard/42001" rel="noopener noreferrer"&gt;ISO/IEC 42001&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fca.org.uk/firms/senior-managers-and-certification-regime/senior-managers-regime" rel="noopener noreferrer"&gt;FCA Senior Managers Regime&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.consumerfinance.gov/rules-policy/regulations/1002/9" rel="noopener noreferrer"&gt;Current Regulation B, 12 CFR §1002.9&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.consumerfinance.gov/compliance/guidance/withdrawn-guidance/" rel="noopener noreferrer"&gt;CFPB withdrawn guidance register&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.eeoc.gov/newsroom/itutorgroup-pay-365000-settle-eeoc-discriminatory-hiring-suit" rel="noopener noreferrer"&gt;EEOC iTutorGroup settlement&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>NexArt adds external DigiCert timestamping and a confidential mode</title>
      <dc:creator>Jb</dc:creator>
      <pubDate>Mon, 10 Aug 2026 17:39:28 +0000</pubDate>
      <link>https://dev.to/arrotu/nexart-adds-external-digicert-timestamping-and-a-confidential-mode-4a5</link>
      <guid>https://dev.to/arrotu/nexart-adds-external-digicert-timestamping-and-a-confidential-mode-4a5</guid>
      <description>&lt;p&gt;NexArt adds external DigiCert timestamping and a confidential mode so organisations can verify AI execution records without exposing sensitive data.&lt;/p&gt;

&lt;p&gt;We are committed to creating records that do not require trust in the producer or in NexArt itself.”&lt;/p&gt;

&lt;p&gt;NexArt today announced two major enhancements to its Certified Execution Records, adding independent RFC 3161 timestamping through DigiCert’s public timestamp authority and a new Confidential Execution Mode for organisations that need verifiable AI execution records without exposing sensitive data.&lt;br&gt;
NexArt is an AI evidence layer that enables organisations to produce tamper-evident, cryptographically verifiable records of what their AI systems and agents actually executed. These records are designed to help teams prove what happened during an AI execution to auditors, clients, regulators, partners or internal reviewers.&lt;br&gt;
Any third party can independently verify a NexArt Certified Execution Record using standard cryptographic methods. No NexArt account is required, and verification does not depend on trusting the original operator.&lt;br&gt;
The new independent timestamping capability adds an external trusted time source to Certified Execution Records, strengthening their evidentiary value for audits, disputes, incident reviews and regulated workflows.&lt;br&gt;
Confidential Execution Mode addresses a key requirement for organisations handling sensitive, regulated or proprietary data. Using keyed HMAC-SHA256 commitments, NexArt allows records to be created and verified without the verification node seeing plaintext inputs or outputs. This allows authorised parties to verify the integrity of the execution record while keeping sensitive data private.&lt;br&gt;
“NexArt released its first SDK six months ago, following a year of engine development. These additions continue our focus on building evidence that stands on its own,” said Jeremy Bouedo, founder of NexArt. “We are committed to creating records that do not require trust in the producer or in NexArt itself.”&lt;br&gt;
NexArt records and verifies what was executed by an AI system. It does not provide governance, model evaluation, output scoring, fairness assessment or legal compliance certification. Those responsibilities remain with the organisation deploying the AI system.&lt;br&gt;
Certified Execution Records can be verified at verify.nexart.io.&lt;/p&gt;

&lt;p&gt;About NexArt&lt;br&gt;
NexArt, a product of Artnames Ltd, provides an independent AI evidence layer for verifiable AI execution. NexArt helps organisations create Certified Execution Records, Project Bundles and confidential execution evidence so they can prove what happened to parties who do not need to trust them.&lt;br&gt;
Contact:&lt;br&gt;
Jeremy Bouedo&lt;br&gt;
&lt;a href="mailto:jeremy@artnames.io"&gt;jeremy@artnames.io&lt;/a&gt;&lt;br&gt;
&lt;a href="//nexart.io"&gt;nexart.io&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
    <item>
      <title>How to Verify an AI Execution Record Without Trusting the Provider</title>
      <dc:creator>Jb</dc:creator>
      <pubDate>Mon, 15 Jun 2026 10:37:47 +0000</pubDate>
      <link>https://dev.to/arrotu/how-to-verify-an-ai-execution-record-without-trusting-the-provider-3334</link>
      <guid>https://dev.to/arrotu/how-to-verify-an-ai-execution-record-without-trusting-the-provider-3334</guid>
      <description>&lt;p&gt;A developer-focused walkthrough of verifying a Certified Execution Record using only its bytes, public node metadata, and standard cryptographic primitives.&lt;/p&gt;

&lt;p&gt;A client challenges an AI decision six weeks later. They do not want a dashboard screenshot. They do not want a model card. They want something much harder: show me exactly what happened, and prove it.&lt;/p&gt;

&lt;p&gt;Most systems fail this test. Logs can be edited. Pipelines evolve. Re-running a model rarely reproduces the original result. You end up explaining what should have happened instead of proving what did.&lt;/p&gt;

&lt;p&gt;This is where execution evidence starts to matter. In NexArt, that evidence takes the form of a Certified Execution Record, or CER. A CER is not just a log entry with a checksum. It is a structured execution artifact with a deterministic identity, integrity anchoring, and signed trust material that can be checked later. The core flow is simple: artifact, hash, trust surface, independent verification.&lt;/p&gt;

&lt;p&gt;This article walks through what it actually means to verify a CER without trusting the original provider, using the current public NexArt model.&lt;/p&gt;

&lt;p&gt;The core problem&lt;br&gt;
Most AI accountability systems are still closed loops. The application produces the decision. The application writes the logs. The provider stores the logs. The provider explains the logs later. That may be enough for debugging. It is much weaker when someone outside the system wants proof.&lt;/p&gt;

&lt;p&gt;If a customer, auditor, partner, or regulator asks what happened in one specific execution, the real question is no longer "do you have logs?" It becomes:&lt;/p&gt;

&lt;p&gt;Can the record be checked later?&lt;br&gt;
Can tampering be detected?&lt;br&gt;
Can the trust material be validated separately?&lt;br&gt;
Does verification depend on trusting the same provider that produced the execution?&lt;br&gt;
That is the gap verifiable execution is meant to close.&lt;/p&gt;

&lt;p&gt;What real proof requires&lt;br&gt;
To turn an execution into something stronger than an internal claim, you need three things.&lt;/p&gt;

&lt;p&gt;Canonical form. The record must have one deterministic representation for hashing and signing.&lt;br&gt;
Integrity. If the record changes later, that change must be detectable.&lt;br&gt;
Authenticity. You need a way to prove who attested to the record.&lt;br&gt;
Without canonical form, hashing becomes unstable. Without integrity, later modification cannot be detected. Without authenticity, the record may still only be self-asserted.&lt;/p&gt;

&lt;p&gt;What a CER looks like&lt;br&gt;
A current AI execution CER uses the cer.ai.execution.v1 bundle type, with top-level fields such as bundleType, version, createdAt, snapshot, optional context and contextSummary, and certificateHash.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"bundleType"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"cer.ai.execution.v1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"0.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"createdAt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-05-15T14:30:00Z"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"snapshot"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"executionId"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"exec_123"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"provider"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"openai"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"gpt-4o-mini"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"input"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"messages"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"role"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"user"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Summarize this contract."&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"output"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"This contract..."&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"parameters"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"temperature"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"certificateHash"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sha256:7b1f9a2c..."&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The most important field is certificateHash. But the key detail is this: the certificate hash is not computed over the entire bundle blindly. The current spec computes the hash from a strict projection over bundleType, version, createdAt, snapshot, and context / contextSummary when present. Fields like certificateHash, meta, and any declaration or verification material are outside the hash projection. That matters because it tells you exactly what the integrity anchor covers.&lt;/p&gt;

&lt;p&gt;Step 1: Canonicalize the correct payload&lt;br&gt;
You cannot hash raw JSON as-is. Two logically identical objects can serialize to different byte sequences if key order changes. The protocol uses RFC 8785 JCS canonicalization for hashing and signing. Alternative serialization is not acceptable for protocol-correct verification.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;cerHashProjection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;projection&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;bundleType&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bundleType&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;version&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;createdAt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;createdAt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;snapshot&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;snapshot&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;context&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;projection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;context&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;contextSummary&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;projection&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;contextSummary&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;contextSummary&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;projection&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then canonicalize that projection using an RFC 8785 implementation. If you are using NexArt's own package surface, prefer helpers like toCanonicalJson in @nexart/ai-execution rather than ad hoc normalization.&lt;/p&gt;

&lt;p&gt;Step 2: Recompute the certificate hash&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;crypto&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;node:crypto&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;sha256Hex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;sha256:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;crypto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createHash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;sha256&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;digest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hex&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;canonicalJson&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;toCanonicalJson&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;cerHashProjection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;recomputed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sha256Hex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;canonicalJson&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;recomputed&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;certificateHash&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Integrity check failed&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the recomputed hash matches, the integrity anchor passes. If it does not match, one of two things is true: the bundle content changed, or the hash is not the correct one for that artifact. Either way, verification fails.&lt;/p&gt;

&lt;p&gt;Step 3: Fetch the public trust material&lt;br&gt;
NexArt's public node metadata is exposed at the well-known node endpoint:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://node.nexart.io/.well-known/nexart-node.json &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; keys.json

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is where public node identity and key material are published for verification flows. If you want to fetch a public CER from the node trust surface, the documented public lookup flow is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="s2"&gt;"https://node.nexart.io/v1/cer/public?certificateHash=&amp;lt;HASH&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; record.json

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That public endpoint requires no API key.&lt;/p&gt;

&lt;p&gt;Step 4: Verify the attestation receipt signature&lt;br&gt;
The public response includes attestation material. The node trust model uses Ed25519 signing, attestation receipts, and verification-envelope semantics. At a practical level, the next step is: take the receipt payload, canonicalize it correctly, find the matching public key, and verify the signature.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;crypto&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;node:crypto&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;verifyEd25519&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;publicKeyPem&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;messageCanonical&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;signatureBase64url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;crypto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;verify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;Buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;messageCanonical&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="nx"&gt;publicKeyPem&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;Buffer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;signatureBase64url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;base64url&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;receipt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;receipt&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;meta&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;attestation&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;receipt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;signature&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
  &lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;receiptSignature&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt;
  &lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;signature&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt;
  &lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;meta&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;attestation&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;signature&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;receipt&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;signature&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Missing attestation material&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;receiptCanonical&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;toCanonicalJson&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;receipt&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ok&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;verifyEd25519&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;publicKeyPem&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;receiptCanonical&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;signature&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;throw&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Invalid attestation signature&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important point is not the exact code shape. The important point is that authenticity is checked separately from integrity. The certificate hash tells you the artifact content matches. The signature tells you the attestation came from the expected node identity. Those are distinct checks.&lt;/p&gt;

&lt;p&gt;Step 5: Understand the trust boundary clearly&lt;br&gt;
A CER public lookup response is enough to verify the certificate hash, verify the receipt signature, and inspect the trust material around the record. The public response is redacted for privacy. Public verification is not the same as reconstructing every original private field. Full envelope-level verification of the exact original unredacted bundle requires access to that original artifact, not only the public projection.&lt;/p&gt;

&lt;p&gt;So the honest way to say it is:&lt;/p&gt;

&lt;p&gt;Public verification gives you a real trust surface.&lt;br&gt;
Privacy-aware public lookup is not the same as publishing the full original private execution.&lt;br&gt;
That is a feature, not a flaw.&lt;/p&gt;

&lt;p&gt;Step 6: Use the CLI when you want protocol-correct verification&lt;br&gt;
If you want a simpler local verification path, the NexArt CLI already provides one:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nexart ai verify bundle.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That gives developers a protocol-aware way to validate a CER bundle locally without reimplementing the full flow from scratch. The verification path involves correct canonicalization, correct hash projection, correct trust-material handling, and correct signature checks. Those details matter.&lt;/p&gt;

&lt;p&gt;What this proves&lt;br&gt;
A successful verification proves a few specific things:&lt;/p&gt;

&lt;p&gt;The protected CER payload has not been altered since sealing.&lt;br&gt;
The attestation material was signed by the expected node identity.&lt;br&gt;
The record you are checking matches the cryptographic identity claimed by its certificateHash.&lt;br&gt;
That is already a meaningful standard. It is far stronger than a screenshot, a dashboard entry, a database row, an internal log line, or a provider simply asserting "this is what happened."&lt;/p&gt;

&lt;p&gt;What this does not prove&lt;br&gt;
Verification of a CER does not automatically prove:&lt;/p&gt;

&lt;p&gt;That every conceivable relevant fact was included.&lt;br&gt;
That the underlying model was correct.&lt;br&gt;
That a probabilistic model would reproduce the same output now.&lt;br&gt;
That the record was written to a public ledger.&lt;br&gt;
That an external timestamp authority was used.&lt;br&gt;
That nothing outside the protected record influenced the broader business decision.&lt;br&gt;
Those are different layers. The system is about execution integrity and evidence, not universal truth claims. That discipline keeps the evidence model credible.&lt;/p&gt;

&lt;p&gt;Why this matters&lt;br&gt;
In most AI systems today, verification still means trusting the provider. Trust their logs. Trust their backend. Trust their screenshots. Trust their claims about what happened.&lt;/p&gt;

&lt;p&gt;A CER changes that. It gives you a record whose integrity can be checked, whose attestation can be validated, and whose trust material can be examined separately from the originating system's own assertions. That is the difference between "our system says this happened" and "here is a record you can verify yourself."&lt;/p&gt;

&lt;p&gt;That difference becomes much more important once AI systems are used in workflows that matter later: customer disputes, regulated reviews, procurement scrutiny, internal investigations, high-value automation, multi-step agent workflows.&lt;/p&gt;

&lt;p&gt;Closing&lt;br&gt;
A system you have to trust blindly is not really a verification system. It may be useful. It may even be well engineered. But it is still a closed loop.&lt;/p&gt;

&lt;p&gt;A Certified Execution Record is different. It turns execution into something portable, mathematically checkable, and less dependent on the provider's own say-so. That does not solve every accountability problem in AI. But it does solve a foundational one: can someone outside the system verify what happened without having to trust the system that produced it?&lt;/p&gt;

&lt;p&gt;That is the standard serious AI systems will increasingly need to meet.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>What I actually want from an AI evidence layer (and why I built NexArt)</title>
      <dc:creator>Jb</dc:creator>
      <pubDate>Mon, 11 May 2026 10:41:31 +0000</pubDate>
      <link>https://dev.to/arrotu/what-i-actually-want-from-an-ai-evidence-layer-and-why-i-built-nexart-2mh8</link>
      <guid>https://dev.to/arrotu/what-i-actually-want-from-an-ai-evidence-layer-and-why-i-built-nexart-2mh8</guid>
      <description>&lt;p&gt;I want to talk about a problem that doesn't get enough attention in AI engineering: when something goes wrong, most teams cannot actually prove what their AI did.&lt;/p&gt;

&lt;p&gt;Not "show me the logs." Not "here's a screenshot of the dashboard." I mean prove it. Cryptographically. To an auditor, a regulator, or a customer who has no reason to trust you.&lt;/p&gt;

&lt;p&gt;This isn't a hypothetical. It comes up the moment a customer disputes a refund decision, or compliance asks for evidence, or a partner wants to verify the inputs that led to an output. Logs describe what you remember. They don't prove what actually happened.&lt;/p&gt;

&lt;p&gt;I'm the founder of &lt;a href="https://nexart.io" rel="noopener noreferrer"&gt;NexArt&lt;/a&gt;, and we built it specifically to close that gap. In this post I want to walk you through what NexArt is, why it exists, and how to drop it into your stack in roughly an hour.&lt;/p&gt;

&lt;h2&gt;
  
  
  So what is NexArt, in one paragraph
&lt;/h2&gt;

&lt;p&gt;NexArt is verifiable execution infrastructure for AI systems. Every time your AI runs, NexArt produces a Certified Execution Record (CER), which is a tamper-evident, cryptographically signed artifact that binds the inputs, outputs, parameters, and context into a single record. Anyone (auditors, partners, regulators, your own customers) can verify that record independently at &lt;a href="https://verify.nexart.io" rel="noopener noreferrer"&gt;verify.nexart.io&lt;/a&gt;. No account, no API key, no dependency on us.&lt;/p&gt;

&lt;p&gt;The model we follow is simple: free to create, paid to certify, public to verify.&lt;/p&gt;

&lt;p&gt;It is not observability. It is not a logging tool. It is not an eval framework. Think of it as the evidence layer underneath your AI: proof that what ran is what you say ran.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does not do
&lt;/h2&gt;

&lt;p&gt;This part is worth being clear about, because the category is new and easy to mix up with other tools.&lt;/p&gt;

&lt;p&gt;NexArt does not claim the model's output is correct. It does not score quality or alignment. It does not replace your observability stack or your evals. What it does is prove what executed, with what inputs, at what time, against what parameters, and bind all of that into one artifact that anyone can verify without trusting you.&lt;/p&gt;

&lt;p&gt;The promise is integrity of the record, not quality of the model. Different problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters now
&lt;/h2&gt;

&lt;p&gt;A few situations where the lack of execution evidence really bites:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Audit and compliance work. ISO 42001, SOC 2, and the EU AI Act all push toward demonstrable, reproducible evidence of AI decisions.&lt;/li&gt;
&lt;li&gt;Customer disputes. Someone claims your AI denied them unfairly. What is your proof of the exact inputs and parameters at that moment?&lt;/li&gt;
&lt;li&gt;Agent workflows. Multi-step agents make many decisions per run. Without a sealed trail, you cannot reliably reconstruct which step did what.&lt;/li&gt;
&lt;li&gt;Debugging. Reproducing a failed run from a tamper-evident record is a very different experience from stitching together five different log sources.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The pattern I keep seeing is that teams discover this gap during an audit or a dispute. By then, the executions they need to prove are already gone.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;The flow is intentionally small. Four steps, each with one job:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Capture. Inputs, outputs, and execution context are recorded at runtime.&lt;/li&gt;
&lt;li&gt;Seal. A canonical, tamper-proof fingerprint (the &lt;code&gt;certificateHash&lt;/code&gt;) binds them into a single record. This happens locally and offline.&lt;/li&gt;
&lt;li&gt;Attest. An independent attestation node signs the record and issues a receipt plus a verification envelope.&lt;/li&gt;
&lt;li&gt;Verify. Anyone can re-derive the hash, validate the signature, and check the envelope. No trust in NexArt or in you is required.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Verification itself happens in three independent layers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Layer 1, Integrity. Recompute SHA-256 over the canonicalized whitelist and compare it with &lt;code&gt;certificateHash&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Layer 2, Receipt. Validate the Ed25519 signature from the attestation node.&lt;/li&gt;
&lt;li&gt;Layer 3, Envelope. Validate the bundle-level signature over the attestation projection.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each layer reports independently as &lt;code&gt;PASS&lt;/code&gt;, &lt;code&gt;FAIL&lt;/code&gt;, or &lt;code&gt;SKIPPED&lt;/code&gt;. A sealed-only (offline) bundle gives you &lt;code&gt;PASS / SKIPPED / SKIPPED&lt;/code&gt;. A certified bundle gives you three &lt;code&gt;PASS&lt;/code&gt; lines. &lt;code&gt;SKIPPED&lt;/code&gt; is not a failure, it just means that layer doesn't apply to that bundle yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick implementation
&lt;/h2&gt;

&lt;p&gt;This is the canonical integration: one function call wrapped around your model inference. No proxy, no middleware, no infrastructure change.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Install the SDK
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @nexart/ai-execution
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Set two environment variables
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;NEXART_NODE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"https://node.nexart.io"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;NEXART_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"&amp;lt;your-api-key&amp;gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Wrap an execution
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;certifyLangChainRun&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;verifyAiCerBundleDetailed&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@nexart/ai-execution&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Capture, seal, and certify in one node round-trip.&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;certificateHash&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;verificationUrl&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
    &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;certifyLangChainRun&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
      &lt;span class="na"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;openai&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gpt-4o-mini&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
          &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Should this refund be approved?&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;],&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;output&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;decision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;approve&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;reason&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;policy_passed&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="na"&gt;nodeUrl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;NEXART_NODE_URL&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;NEXART_API_KEY&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;certificateHash :&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;certificateHash&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;verificationUrl :&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;verificationUrl&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="c1"&gt;// Independent verification of the returned bundle.&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;report&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;verifyAiCerBundleDetailed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Integrity (Layer 1) :&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;report&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;integrity&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Receipt   (Layer 2) :&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;report&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;receipt&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Envelope  (Layer 3) :&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;report&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;envelope&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;FAILED:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. Run it
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx tsx test-harness.ts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;certificateHash : sha256:9f2b1c8e4a7d6f3b...
verificationUrl : https://verify.nexart.io/c/sha256:9f2b1c8e4a7d6f3b...
Integrity (Layer 1) : PASS
Receipt   (Layer 2) : PASS
Envelope  (Layer 3) : PASS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Three &lt;code&gt;PASS&lt;/code&gt; lines tell you a few things at once. The bundle is byte-identical to what the node attested. The receipt signature validates against the node's key. And the verification envelope correctly binds the attestation back to the bundle.&lt;/p&gt;

&lt;p&gt;Open the &lt;code&gt;verificationUrl&lt;/code&gt; in any browser. Anyone, including someone who has never heard of you, can confirm the record. No account, no API key. That's it. You now have audit-grade execution evidence for that AI call.&lt;/p&gt;

&lt;h2&gt;
  
  
  Offline mode, when you don't want a network call
&lt;/h2&gt;

&lt;p&gt;Not every execution needs to hit the node. NexArt supports a fully offline flow that's useful for air-gapped environments, local testing, or batching certification for later.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;sealCer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;verifyAiCerBundleDetailed&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@nexart/ai-execution&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;certificateHash&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sealCer&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;openai&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gpt-4o-mini&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt; &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;What is 2 + 2?&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}]&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;output&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;text&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;4&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;report&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;verifyAiCerBundleDetailed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// report.integrity === "PASS"&lt;/span&gt;
&lt;span class="c1"&gt;// report.receipt   === "SKIPPED"&lt;/span&gt;
&lt;span class="c1"&gt;// report.envelope  === "SKIPPED"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Two things to keep in mind here. &lt;code&gt;SKIPPED&lt;/code&gt; is expected for a sealed-only artifact, so don't treat it as a failure. And when you're later ready to make the record publicly verifiable, submit the bundle to the attestation node. The same &lt;code&gt;certificateHash&lt;/code&gt; will receive a signed receipt. The identity of the record never changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Multi-step workflows: Project Bundles
&lt;/h2&gt;

&lt;p&gt;Real systems aren't a single call. Agents plan, retrieve, decide, and act across many steps. For those, NexArt has Project Bundles. Each step becomes its own CER, and the bundle ties them into one verifiable artifact with its own &lt;code&gt;projectHash&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;startWorkflow&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@nexart/agent-kit&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;workflow&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;startWorkflow&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;projectTitle&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Contract review&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;clauses&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;workflow&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;step&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Extract clauses&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;llm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Extract key clauses...&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;risks&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;workflow&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;step&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Summarize risks&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;llm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;call&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Summarize risks from: &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;clauses&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;bundle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;workflow&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;finish&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="c1"&gt;// bundle.integrity.projectHash is the verifiable hash for the whole workflow&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One workflow. Many executions. One artifact you can hand to anyone.&lt;/p&gt;

&lt;h2&gt;
  
  
  The point of independent verification
&lt;/h2&gt;

&lt;p&gt;Here is the part most evidence systems quietly skip. Verification cannot require trust in the system that created the record. If it does, it isn't really evidence.&lt;/p&gt;

&lt;p&gt;A few design choices follow from that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The SDK creates records locally.&lt;/li&gt;
&lt;li&gt;The attestation node certifies them independently.&lt;/li&gt;
&lt;li&gt;The verifier at &lt;a href="https://verify.nexart.io" rel="noopener noreferrer"&gt;verify.nexart.io&lt;/a&gt; is a separate public surface, with no login and no API key.&lt;/li&gt;
&lt;li&gt;Verification can also run offline, using only the bundle and the node's published public key.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To verify a record, anyone can open &lt;code&gt;https://verify.nexart.io/c/{certificateHash}&lt;/code&gt; directly, or paste an execution ID, certificate hash, or upload the JSON bundle on the home page, or run &lt;code&gt;verifyAiCerBundleDetailed(bundle)&lt;/code&gt; locally in their own code. All three paths land at the same answer.&lt;/p&gt;

&lt;p&gt;This is what makes the evidence portable. You can hand it to an auditor, a regulator, a counterparty, or a customer, and they do not have to trust you for it to mean something.&lt;/p&gt;

&lt;h2&gt;
  
  
  A few pitfalls worth mentioning
&lt;/h2&gt;

&lt;p&gt;Some mistakes I've seen in real integrations, in case they save you some time:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don't mutate a certified bundle. Re-ordering keys, adding fields, or re-serializing will break &lt;code&gt;certificateHash&lt;/code&gt;. Persist bundles byte-for-byte after certification.&lt;/li&gt;
&lt;li&gt;Don't look records up by &lt;code&gt;executionId&lt;/code&gt;. Always use &lt;code&gt;certificateHash&lt;/code&gt;, which is the canonical identity. Two attempts of the same execution can share an &lt;code&gt;executionId&lt;/code&gt; but produce different hashes.&lt;/li&gt;
&lt;li&gt;Don't hash the full bundle yourself. Hashing is over a strict whitelist (&lt;code&gt;bundleType&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;createdAt&lt;/code&gt;, &lt;code&gt;snapshot&lt;/code&gt;, plus optional &lt;code&gt;context&lt;/code&gt; and &lt;code&gt;contextSummary&lt;/code&gt;) using JCS canonicalization (RFC 8785). The SDK does this for you.&lt;/li&gt;
&lt;li&gt;Don't treat &lt;code&gt;SKIPPED&lt;/code&gt; as a failure. It's the correct result for sealed-only artifacts on Layers 2 and 3.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where to dig in next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Main site: &lt;a href="https://nexart.io" rel="noopener noreferrer"&gt;nexart.io&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Docs and quickstart: &lt;a href="https://docs.nexart.io" rel="noopener noreferrer"&gt;docs.nexart.io&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Public verification surface: &lt;a href="https://verify.nexart.io" rel="noopener noreferrer"&gt;verify.nexart.io&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;LangChain example repo: &lt;code&gt;github.com/artnames/nexart-langchain&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;n8n example repo: &lt;code&gt;github.com/artnames/nexart-n8n&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  One last thought
&lt;/h2&gt;

&lt;p&gt;We've spent the last decade making AI systems more capable. The next decade is going to be about making them accountable. As more decisions get automated, the cost of not having execution evidence quietly compounds. Every uncertified run is a record you can't recover later.&lt;/p&gt;

&lt;p&gt;If you're building anything where someone might one day ask "prove it," I'd start certifying now. One function call, one record, one link anyone can verify is a much better position to be in than scrambling to reconstruct logs the week before an audit.&lt;/p&gt;

&lt;p&gt;That's NexArt. If you try it, I'd genuinely love to hear what works and what breaks. Feedback from real integrations is how the protocol gets sharper.&lt;/p&gt;

&lt;p&gt;Thanks for reading.&lt;/p&gt;

&lt;p&gt;Jeremy, founder of &lt;a href="https://nexart.io" rel="noopener noreferrer"&gt;NexArt&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How NexArt Protects AI Execution Evidence From Tampering</title>
      <dc:creator>Jb</dc:creator>
      <pubDate>Fri, 03 Apr 2026 19:21:39 +0000</pubDate>
      <link>https://dev.to/arrotu/how-nexart-protects-ai-execution-evidence-from-tampering-f1n</link>
      <guid>https://dev.to/arrotu/how-nexart-protects-ai-execution-evidence-from-tampering-f1n</guid>
      <description>&lt;p&gt;If an AI execution record is going to matter later, the real question is simple:&lt;/p&gt;

&lt;p&gt;Who could tamper with it, and when?&lt;/p&gt;

&lt;p&gt;That question shows up fast in serious environments.&lt;/p&gt;

&lt;p&gt;A workflow makes a recommendation.&lt;/p&gt;

&lt;p&gt;An agent triggers an action.&lt;/p&gt;

&lt;p&gt;A decision gets reviewed months later.&lt;/p&gt;

&lt;p&gt;At that point, nobody really cares how pretty the dashboard was.&lt;/p&gt;

&lt;p&gt;They care about something much more basic:&lt;/p&gt;

&lt;p&gt;Can the record still be trusted?&lt;/p&gt;

&lt;p&gt;That is where most ordinary logging models start to break down.&lt;/p&gt;

&lt;p&gt;And it is exactly where NexArt’s trust model becomes useful.&lt;/p&gt;

&lt;p&gt;The weak default model&lt;br&gt;
Most AI systems today still rely on some mix of:&lt;/p&gt;

&lt;p&gt;application logs&lt;br&gt;
traces&lt;br&gt;
observability tooling&lt;br&gt;
stored outputs&lt;br&gt;
internal databases&lt;br&gt;
That is useful for operations.&lt;/p&gt;

&lt;p&gt;It is much weaker for proof.&lt;/p&gt;

&lt;p&gt;The problem is not that logs are worthless. The problem is that logs are usually still controlled by the same system, team, or customer that produced the result in the first place.&lt;/p&gt;

&lt;p&gt;That creates several weaknesses.&lt;/p&gt;

&lt;p&gt;A customer-controlled log can be rewritten.&lt;/p&gt;

&lt;p&gt;Telemetry can be incomplete.&lt;/p&gt;

&lt;p&gt;Context can be lost.&lt;/p&gt;

&lt;p&gt;And when something is challenged later, teams often reconstruct what happened from multiple systems rather than preserving one stable record at the point of execution.&lt;/p&gt;

&lt;p&gt;That works for debugging.&lt;/p&gt;

&lt;p&gt;It is much weaker for disputes, audits, and high-trust workflows.&lt;/p&gt;

&lt;p&gt;The result is a familiar but fragile position:&lt;/p&gt;

&lt;p&gt;“This is what our system says happened.”&lt;/p&gt;

&lt;p&gt;Not:&lt;/p&gt;

&lt;p&gt;“This is what can still be independently checked later.”&lt;/p&gt;

&lt;p&gt;What NexArt changes&lt;br&gt;
NexArt changes the model by turning important AI executions into Certified Execution Records, or CERs.&lt;/p&gt;

&lt;p&gt;A CER is not just another log entry.&lt;/p&gt;

&lt;p&gt;It is a certified execution artifact.&lt;/p&gt;

&lt;p&gt;At a high level, the flow is simple:&lt;/p&gt;

&lt;p&gt;a workflow runs&lt;br&gt;
a CER is created from that execution&lt;br&gt;
the CER is certified through the NexArt certification layer&lt;br&gt;
a minimum certified record is stored outside the customer’s control&lt;br&gt;
verification can later check whether the protected fields still match the certified state&lt;br&gt;
That outside-the-customer-control part is the key difference.&lt;/p&gt;

&lt;p&gt;Once a CER has been certified, the customer cannot retroactively rewrite that independently stored certified state after issuance.&lt;/p&gt;

&lt;p&gt;That already makes NexArt meaningfully different from:&lt;/p&gt;

&lt;p&gt;customer-owned logs&lt;br&gt;
customer-controlled audit tables&lt;br&gt;
standard observability products&lt;br&gt;
internal “trust us” record systems&lt;br&gt;
What this protects against today&lt;br&gt;
This current model already protects against several very real enterprise problems.&lt;/p&gt;

&lt;p&gt;Customer-side rewriting of history&lt;br&gt;
If a team later wants to alter the record of an execution after certification, verification should fail.&lt;/p&gt;

&lt;p&gt;That matters because many audit trail systems still rely on the customer’s own infrastructure to preserve history.&lt;/p&gt;

&lt;p&gt;NexArt shifts that baseline.&lt;/p&gt;

&lt;p&gt;Post-hoc edits to important fields&lt;br&gt;
If protected fields such as inputs, outputs, or declared metadata are changed after certification, the record should no longer verify.&lt;/p&gt;

&lt;p&gt;That changes the trust conversation from reconstruction to integrity checking.&lt;/p&gt;

&lt;p&gt;Over-reliance on internal telemetry&lt;br&gt;
A team no longer has to say:&lt;/p&gt;

&lt;p&gt;“Please trust our logs.”&lt;/p&gt;

&lt;p&gt;Instead, it can point to a certified artifact with an integrity anchor and an independent verification path.&lt;/p&gt;

&lt;p&gt;Disputes over what actually happened&lt;br&gt;
When an output is challenged later, the record does not need to be rebuilt from fragments. It can be inspected as a preserved execution artifact.&lt;/p&gt;

&lt;p&gt;That is not a small operational improvement.&lt;/p&gt;

&lt;p&gt;It is a different evidence model.&lt;/p&gt;

&lt;p&gt;The trust boundary that still remains&lt;br&gt;
This is the part that matters for serious enterprise buyers.&lt;/p&gt;

&lt;p&gt;A strong trust model is not one that claims to eliminate every trust assumption.&lt;/p&gt;

&lt;p&gt;It is one that states them clearly.&lt;/p&gt;

&lt;p&gt;NexArt already gives you one important protection layer:&lt;/p&gt;

&lt;p&gt;the customer cannot silently rewrite certified evidence after issuance.&lt;/p&gt;

&lt;p&gt;But a security-minded evaluator may still ask a different question:&lt;/p&gt;

&lt;p&gt;What trust do we still place in NexArt itself?&lt;/p&gt;

&lt;p&gt;That is the right question.&lt;/p&gt;

&lt;p&gt;Because there are really two layers here.&lt;/p&gt;

&lt;p&gt;Layer one: customer-side tamper resistance&lt;br&gt;
This is what NexArt already provides today.&lt;/p&gt;

&lt;p&gt;It protects against customer-side rewriting, post-hoc edits, and over-reliance on internal logs.&lt;/p&gt;

&lt;p&gt;Layer two: trust in the certification environment&lt;br&gt;
A more demanding enterprise buyer may still ask:&lt;/p&gt;

&lt;p&gt;could a privileged NexArt operator interfere with the certification path?&lt;br&gt;
what if the host running the certification node is compromised?&lt;br&gt;
what about tampering before or during certification, rather than after it?&lt;br&gt;
That is a different layer of trust.&lt;/p&gt;

&lt;p&gt;And being honest about it increases credibility, not weakness.&lt;/p&gt;

&lt;p&gt;The point is not that NexArt’s current model is broken without more.&lt;/p&gt;

&lt;p&gt;Become a Medium member&lt;br&gt;
The point is that customer-side tamper resistance and certification-environment trust are not the same question.&lt;/p&gt;

&lt;p&gt;Why this is already stronger than ordinary logs&lt;br&gt;
This distinction matters because most teams still treat “audit trail” and “evidence” as if they were the same thing.&lt;/p&gt;

&lt;p&gt;They are not.&lt;/p&gt;

&lt;p&gt;An ordinary log says:&lt;/p&gt;

&lt;p&gt;“Here is what our system recorded.”&lt;/p&gt;

&lt;p&gt;A certified execution artifact says:&lt;/p&gt;

&lt;p&gt;“Here is the record, here is the integrity anchor, and here is how you can verify whether it still matches the certified state.”&lt;/p&gt;

&lt;p&gt;That is already a substantial trust improvement.&lt;/p&gt;

&lt;p&gt;You do not need hardware-backed attestation to make that true.&lt;/p&gt;

&lt;p&gt;You already need only three things:&lt;/p&gt;

&lt;p&gt;a preserved execution artifact&lt;br&gt;
certification outside customer control&lt;br&gt;
deterministic verification over the protected set&lt;br&gt;
That is the baseline evidence layer.&lt;/p&gt;

&lt;p&gt;The next layer: hardware-backed attestation&lt;br&gt;
For some enterprise environments, that baseline will still not be enough.&lt;/p&gt;

&lt;p&gt;Especially in highly controlled settings such as:&lt;/p&gt;

&lt;p&gt;banking&lt;br&gt;
insurance&lt;br&gt;
regulated financial operations&lt;br&gt;
other high-assurance enterprise deployments&lt;br&gt;
Those buyers may want stronger assurance around the certification path itself.&lt;/p&gt;

&lt;p&gt;That is where hardware-backed attestation becomes relevant.&lt;/p&gt;

&lt;p&gt;In simple terms, hardware-backed or enclave-backed attestation can strengthen trust in the environment that performs certification.&lt;/p&gt;

&lt;p&gt;It helps answer a harder question:&lt;/p&gt;

&lt;p&gt;Can the certification process itself be tied to a trusted runtime boundary?&lt;/p&gt;

&lt;p&gt;That matters most when the buyer wants stronger guarantees not only that the customer cannot rewrite evidence later, but also that the certification path itself is operating inside a more strongly bounded environment.&lt;/p&gt;

&lt;p&gt;That is an important extension.&lt;/p&gt;

&lt;p&gt;But it should be framed correctly.&lt;/p&gt;

&lt;p&gt;The right way to think about it&lt;br&gt;
NexArt today already provides a meaningful independent evidence layer.&lt;/p&gt;

&lt;p&gt;Hardware-backed attestation is not a rescue of a broken model.&lt;/p&gt;

&lt;p&gt;It is a stronger enterprise trust extension for the most demanding environments.&lt;/p&gt;

&lt;p&gt;That distinction matters.&lt;/p&gt;

&lt;p&gt;The right framing is:&lt;/p&gt;

&lt;p&gt;NexArt is the execution evidence layer&lt;br&gt;
hardware-backed attestation is a premium trust extension&lt;br&gt;
Not the other way around.&lt;/p&gt;

&lt;p&gt;A simple trust-layer model&lt;br&gt;
A useful way to remember this is to think in layers.&lt;/p&gt;

&lt;p&gt;Layer 1: Record integrity&lt;br&gt;
Has the record been altered?&lt;/p&gt;

&lt;p&gt;Layer 2: Independent certification&lt;br&gt;
Was the record sealed outside customer control?&lt;/p&gt;

&lt;p&gt;Layer 3: Runtime trust extension&lt;br&gt;
Can the certification path itself be hardware-attested?&lt;/p&gt;

&lt;p&gt;Most systems today never really get to Layer 2.&lt;/p&gt;

&lt;p&gt;They remain inside customer-controlled evidence.&lt;/p&gt;

&lt;p&gt;NexArt moves the system to Layer 2.&lt;/p&gt;

&lt;p&gt;Hardware-backed attestation extends that trust model into Layer 3.&lt;/p&gt;

&lt;p&gt;Where AIEF helps&lt;br&gt;
This layered way of thinking is one reason AIEF is useful as a framing tool.&lt;/p&gt;

&lt;p&gt;The AI Execution Integrity Framework is an implementation-agnostic framework that defines baseline control objectives, evidence expectations, conformance levels, and a minimal verifier interoperability contract for AI execution integrity artifacts. It is explicitly scoped around integrity and verifiability of the recorded artifact rather than correctness, fairness, or future output determinism.&lt;/p&gt;

&lt;p&gt;That helps clarify something important:&lt;/p&gt;

&lt;p&gt;trust maturity can increase in layers.&lt;/p&gt;

&lt;p&gt;You do not need to start at the highest-assurance tier to have meaningful evidence.&lt;/p&gt;

&lt;p&gt;AIEF helps make space for a practical baseline and a stronger enterprise assurance tier.&lt;/p&gt;

&lt;p&gt;That is exactly the right way to think about NexArt’s current model and its enterprise roadmap.&lt;/p&gt;

&lt;p&gt;Why this matters now&lt;br&gt;
This matters because more AI systems are moving into environments where records need to survive scrutiny.&lt;/p&gt;

&lt;p&gt;The EU AI Act is the clearest legal example today. The European Commission’s timeline states that the majority of the AI Act’s rules apply from 2 August 2026, and that Annex III high-risk AI systems come into application then. Article 12 requires high-risk AI systems to technically allow automatic recording of events over their lifetime.&lt;/p&gt;

&lt;p&gt;That does not mean the law mandates CERs, or hardware-backed attestation, or one specific architecture.&lt;/p&gt;

&lt;p&gt;It does mean that weak, customer-controlled, reconstructive evidence models are going to look less convincing over time.&lt;/p&gt;

&lt;p&gt;In the U.S., there is still no single federal equivalent to the EU AI Act. In practice, the closest broad reference point is the NIST AI Risk Management Framework, which is voluntary and sector-agnostic, plus sector-specific obligations and supervisory expectations.&lt;/p&gt;

&lt;p&gt;Across both environments, the direction is similar:&lt;/p&gt;

&lt;p&gt;systems increasingly need records that are more defensible than ordinary logs.&lt;/p&gt;

&lt;p&gt;Practical takeaway&lt;br&gt;
Most teams do not discover their evidence problem while everything is going well.&lt;/p&gt;

&lt;p&gt;They discover it when:&lt;/p&gt;

&lt;p&gt;a decision is challenged&lt;br&gt;
an output is disputed&lt;br&gt;
a reviewer asks for proof&lt;br&gt;
an audit asks what actually happened&lt;br&gt;
At that point, reconstruction is weaker than preservation.&lt;/p&gt;

&lt;p&gt;NexArt already gives teams something that customer-controlled audit trails and observability tools usually do not:&lt;/p&gt;

&lt;p&gt;an independent certification layer for AI execution evidence.&lt;/p&gt;

&lt;p&gt;That is meaningful today.&lt;/p&gt;

&lt;p&gt;And for high-assurance enterprise environments, hardware-backed attestation is the next trust layer, not the first one.&lt;/p&gt;

&lt;p&gt;Next step&lt;br&gt;
If you are evaluating AI execution evidence for enterprise use, the right next step is not theoretical.&lt;/p&gt;

&lt;p&gt;It is practical.&lt;/p&gt;

&lt;p&gt;Look at how a Certified Execution Record works in practice.&lt;/p&gt;

&lt;p&gt;Inspect how verification behaves.&lt;/p&gt;

&lt;p&gt;Then decide whether your environment needs baseline independent certification, or a stronger runtime trust extension on top of it.&lt;/p&gt;

&lt;p&gt;Explore:&lt;/p&gt;

&lt;p&gt;the CER page&lt;br&gt;
the public verifier&lt;br&gt;
enterprise pricing / evaluation&lt;br&gt;
a proof walkthrough&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>cybersecurity</category>
      <category>security</category>
    </item>
    <item>
      <title>How to Add Verifiable Execution to LangChain and n8n Workflows (with NexArt)</title>
      <dc:creator>Jb</dc:creator>
      <pubDate>Thu, 02 Apr 2026 14:58:36 +0000</pubDate>
      <link>https://dev.to/arrotu/how-to-add-verifiable-execution-to-langchain-and-n8n-workflows-with-nexart-2ijn</link>
      <guid>https://dev.to/arrotu/how-to-add-verifiable-execution-to-langchain-and-n8n-workflows-with-nexart-2ijn</guid>
      <description>&lt;p&gt;Most AI workflow tooling helps you run chains, agents, and automations.&lt;/p&gt;

&lt;p&gt;Very little helps you prove what actually ran later.&lt;/p&gt;

&lt;p&gt;That gap matters more than it seems.&lt;/p&gt;

&lt;p&gt;If a workflow output gets challenged, reviewed, or audited, logs are often not enough. They describe what happened, but they are still controlled by the same system that produced the result.&lt;/p&gt;

&lt;p&gt;This is where verifiable execution becomes useful.&lt;/p&gt;

&lt;p&gt;In this article, we’ll walk through a simple pattern for adding Certified Execution Records (CERs) to:&lt;br&gt;
    • LangChain workflows&lt;br&gt;
    • n8n automations&lt;/p&gt;

&lt;p&gt;The goal is not to add complexity.&lt;/p&gt;

&lt;p&gt;It’s to make workflow outputs defensible, inspectable, and verifiable later.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Problem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most AI systems already have:&lt;br&gt;
    • logs&lt;br&gt;
    • traces&lt;br&gt;
    • run metadata&lt;br&gt;
    • observability dashboards&lt;/p&gt;

&lt;p&gt;That’s useful.&lt;/p&gt;

&lt;p&gt;But it does not give you a durable, independently verifiable record of execution.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
    • an agent makes a recommendation&lt;br&gt;
    • a chain classifies a request&lt;br&gt;
    • a workflow triggers an action&lt;/p&gt;

&lt;p&gt;Later someone asks:&lt;br&gt;
    • What exactly ran?&lt;br&gt;
    • What inputs produced this result?&lt;br&gt;
    • Which model and parameters were used?&lt;br&gt;
    • Was this record modified later?&lt;br&gt;
    • Can this be verified without trusting the original app?&lt;/p&gt;

&lt;p&gt;In many systems, the answer is still:&lt;br&gt;
    • internal logs&lt;br&gt;
    • partial reconstruction&lt;br&gt;
    • “trust us”&lt;/p&gt;

&lt;p&gt;That’s weak for anything that might be:&lt;br&gt;
    • audited&lt;br&gt;
    • reviewed&lt;br&gt;
    • disputed&lt;br&gt;
    • relied on downstream&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What NexArt Adds&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NexArt produces a Certified Execution Record (CER).&lt;/p&gt;

&lt;p&gt;A CER is a tamper-evident execution artifact that binds:&lt;br&gt;
    • input&lt;br&gt;
    • output&lt;br&gt;
    • model/provider metadata&lt;br&gt;
    • parameters&lt;br&gt;
    • execution context&lt;br&gt;
    • certificate hash&lt;/p&gt;

&lt;p&gt;The pattern is simple:&lt;br&gt;
    1.  Run your workflow&lt;br&gt;
    2.  Create a CER from the result&lt;br&gt;
    3.  Verify it locally or register it&lt;br&gt;
    4.  Later → anyone can inspect or verify it&lt;/p&gt;

&lt;p&gt;The key shift:&lt;/p&gt;

&lt;p&gt;The output is no longer “something that happened in logs”&lt;br&gt;
It becomes a portable, verifiable record&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where to Start&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We’ve published two example repos:&lt;br&gt;
    • LangChain example&lt;br&gt;
    • n8n example&lt;/p&gt;

&lt;p&gt;They show the same pattern:&lt;br&gt;
    • execute&lt;br&gt;
    • create CER&lt;br&gt;
    • inspect certificate hash&lt;br&gt;
    • verify&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Part 1 — LangChain&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What this looks like&lt;/p&gt;

&lt;p&gt;LangChain is a natural fit for CERs because many workflows involve:&lt;br&gt;
    • prompt chains&lt;br&gt;
    • tool-calling agents&lt;br&gt;
    • classification pipelines&lt;br&gt;
    • decision helpers&lt;/p&gt;

&lt;p&gt;These are exactly the places where questions show up later.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Minimal pattern&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;chain&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;invoke&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;question&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Summarize the key risks in Q4 earnings.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;bundle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createLangChainCer&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;openai&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gpt-4o&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;You are a helpful assistant.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;question&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Summarize the key risks in Q4 earnings.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="nx"&gt;output&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then verify:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;verifyCer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;snapshot&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;certificateHash&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s it:&lt;br&gt;
    • execute&lt;br&gt;
    • create CER&lt;br&gt;
    • verify&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What gets captured&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A typical CER includes:&lt;br&gt;
    • workflow input&lt;br&gt;
    • workflow output&lt;br&gt;
    • model/provider metadata&lt;br&gt;
    • parameters&lt;br&gt;
    • execution context&lt;br&gt;
    • certificateHash&lt;/p&gt;

&lt;p&gt;The certificateHash is the integrity anchor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-step / agents&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For agent workflows:&lt;br&gt;
    • certify important tool calls&lt;br&gt;
    • certify intermediate decisions&lt;br&gt;
    • certify final outcome&lt;/p&gt;

&lt;p&gt;This creates a traceable, verifiable chain of evidence, not just a final blob.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why this matters&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A normal chain output says:&lt;/p&gt;

&lt;p&gt;“this is what the chain returned”&lt;/p&gt;

&lt;p&gt;A CER-backed output says:&lt;br&gt;
    • this was the input&lt;br&gt;
    • this was the output&lt;br&gt;
    • this was the execution context&lt;br&gt;
    • this record can be verified later&lt;/p&gt;

&lt;p&gt;That’s a completely different trust model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Part 2 — n8n&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The approach&lt;/p&gt;

&lt;p&gt;You don’t need a custom node.&lt;/p&gt;

&lt;p&gt;Start with:&lt;br&gt;
    • normal workflow&lt;br&gt;
    • HTTP Request node&lt;br&gt;
    • small certifier service&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Typical flow&lt;/strong&gt;&lt;br&gt;
    1.  Workflow runs&lt;br&gt;
    2.  Output is produced&lt;br&gt;
    3.  HTTP node sends payload to certifier&lt;br&gt;
    4.  Certifier returns:&lt;br&gt;
          •   certificateHash&lt;br&gt;
          •   bundle&lt;br&gt;
    5.  Optionally verify&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example payload&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"provider"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"openai"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"gpt-4o"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"input"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ticketId"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"SUP-1042"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"priority"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"high"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"summary"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Customer cannot access production dashboard"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"output"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"classification"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"escalate"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"reason"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"production-impacting access issue"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"workflowId"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"support-triage"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Response:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"certificateHash"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sha256:..."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"bundle"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Where this fits best&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This pattern is especially useful for:&lt;br&gt;
    • approvals&lt;br&gt;
    • classification workflows&lt;br&gt;
    • routing decisions&lt;br&gt;
    • policy checks&lt;br&gt;
    • automation outcomes&lt;/p&gt;

&lt;p&gt;Anything that might later be:&lt;br&gt;
    • reviewed&lt;br&gt;
    • audited&lt;br&gt;
    • challenged&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CERs vs Logs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Logs say:&lt;/p&gt;

&lt;p&gt;“this is what the system says happened”&lt;/p&gt;

&lt;p&gt;CERs say:&lt;br&gt;
    • this is the execution record&lt;br&gt;
    • this is the integrity anchor&lt;br&gt;
    • this can be verified independently&lt;/p&gt;

&lt;p&gt;CERs don’t replace observability.&lt;/p&gt;

&lt;p&gt;They add something observability usually lacks:&lt;/p&gt;

&lt;p&gt;portable, tamper-evident execution evidence&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When to Use This&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Start where outcomes matter:&lt;br&gt;
    • approvals&lt;br&gt;
    • classifications&lt;br&gt;
    • decisions&lt;br&gt;
    • agent actions&lt;br&gt;
    • workflow outputs consumed downstream&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Simple rollout&lt;/strong&gt;&lt;br&gt;
    1.  Add CER to one workflow&lt;br&gt;
    2.  Verify locally&lt;br&gt;
    3.  Add certification if needed&lt;br&gt;
    4.  Expand gradually&lt;/p&gt;

&lt;p&gt;Don’t over-engineer it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thought&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most AI tooling is optimized for:&lt;br&gt;
    • execution&lt;br&gt;
    • iteration&lt;br&gt;
    • observability&lt;/p&gt;

&lt;p&gt;That’s fine.&lt;/p&gt;

&lt;p&gt;But once outputs matter, the question changes:&lt;/p&gt;

&lt;p&gt;Not “did it run?”&lt;br&gt;
But “can you prove what ran?”&lt;/p&gt;

&lt;p&gt;That’s what CERs are for.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>infrastructure</category>
      <category>devops</category>
    </item>
    <item>
      <title>How to Add Verifiable Execution to an AI Agent in Under 30 Minutes</title>
      <dc:creator>Jb</dc:creator>
      <pubDate>Fri, 27 Mar 2026 09:42:05 +0000</pubDate>
      <link>https://dev.to/arrotu/how-to-add-verifiable-execution-to-an-ai-agent-in-under-30-minutes-3o6h</link>
      <guid>https://dev.to/arrotu/how-to-add-verifiable-execution-to-an-ai-agent-in-under-30-minutes-3o6h</guid>
      <description>&lt;p&gt;&lt;strong&gt;Your AI agent made a decision last week.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Today, someone asks you to prove exactly how it happened.&lt;/p&gt;

&lt;p&gt;Which input did it receive?&lt;/p&gt;

&lt;p&gt;Which tools did it call?&lt;/p&gt;

&lt;p&gt;What sequence of steps led to the outcome?&lt;/p&gt;

&lt;p&gt;What changed in the workflow?&lt;/p&gt;

&lt;p&gt;Can you prove the record was not modified after the fact?&lt;/p&gt;

&lt;p&gt;For most teams, this is where confidence starts to collapse.&lt;/p&gt;

&lt;p&gt;Not because the agent necessarily failed.&lt;/p&gt;

&lt;p&gt;Because the evidence does.&lt;/p&gt;

&lt;p&gt;As AI agents move from demos into financial workflows, internal automation, support systems, and operational tooling, this problem becomes much more serious. It is no longer enough to say an agent worked. You need to be able to show what it did, how it did it, and whether that record can still be trusted later.&lt;/p&gt;

&lt;p&gt;That is where most systems break.&lt;/p&gt;

&lt;p&gt;And that is exactly where verifiable execution becomes useful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Problem Most Agent Builders Eventually Hit&lt;/strong&gt;&lt;br&gt;
At first, agent workflows feel manageable.&lt;/p&gt;

&lt;p&gt;You can inspect logs, review traces, and debug errors as they happen. In early prototypes, that is often enough.&lt;/p&gt;

&lt;p&gt;But once agents start making decisions that matter, the questions change.&lt;/p&gt;

&lt;p&gt;You are no longer only asking:&lt;/p&gt;

&lt;p&gt;Did the workflow complete?&lt;br&gt;
Did the tool call succeed?&lt;br&gt;
Did the model return a result?&lt;br&gt;
You are now asking:&lt;/p&gt;

&lt;p&gt;What exactly happened during this run?&lt;br&gt;
Can we reconstruct the full chain of actions?&lt;br&gt;
Can we explain this decision to someone else?&lt;br&gt;
Can we verify the execution without trusting our own internal systems?&lt;br&gt;
These questions show up fast in the real world.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;a support agent issues the wrong refund&lt;br&gt;
a fraud agent flags a legitimate transaction&lt;br&gt;
an operations agent triggers the wrong workflow&lt;br&gt;
a compliance agent escalates the wrong case&lt;br&gt;
a multi-step agent behaves differently from one run to the next&lt;br&gt;
When that happens, logs help, but they rarely give you a clean answer.&lt;/p&gt;

&lt;p&gt;They give you fragments.&lt;/p&gt;

&lt;p&gt;And fragments are not evidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Logs Are Not Enough for Agent Systems&lt;/strong&gt;&lt;br&gt;
Logs are useful. They are essential for operating software.&lt;/p&gt;

&lt;p&gt;But they were built for observability, not proof.&lt;/p&gt;

&lt;p&gt;That difference matters a lot more in agent systems because agent execution is usually:&lt;/p&gt;

&lt;p&gt;multi-step&lt;br&gt;
dynamic&lt;br&gt;
dependent on tool calls&lt;br&gt;
influenced by changing runtime context&lt;br&gt;
spread across multiple systems and services&lt;br&gt;
So when you try to answer a simple question like:&lt;/p&gt;

&lt;p&gt;“Can you prove what the agent actually did?”&lt;/p&gt;

&lt;p&gt;you often end up pulling from:&lt;/p&gt;

&lt;p&gt;application logs&lt;br&gt;
model traces&lt;br&gt;
API records&lt;br&gt;
database entries&lt;br&gt;
monitoring dashboards&lt;br&gt;
tool-specific logs&lt;br&gt;
At that point, you are no longer looking at one record.&lt;/p&gt;

&lt;p&gt;You are running a reconstruction exercise.&lt;/p&gt;

&lt;p&gt;That introduces real problems:&lt;/p&gt;

&lt;p&gt;records are fragmented&lt;br&gt;
context is incomplete&lt;br&gt;
timelines are hard to correlate&lt;br&gt;
outputs are difficult to defend&lt;br&gt;
external validation is nearly impossible&lt;br&gt;
Even if you log everything, you are still relying on:&lt;/p&gt;

&lt;p&gt;trust in your own infrastructure&lt;/p&gt;

&lt;p&gt;That is exactly the thing many teams need to reduce.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Stakes Are Getting Higher&lt;/strong&gt;&lt;br&gt;
This is not just a debugging issue anymore.&lt;/p&gt;

&lt;p&gt;It becomes more serious as agents move into workflows involving:&lt;/p&gt;

&lt;p&gt;money&lt;br&gt;
approvals&lt;br&gt;
compliance&lt;br&gt;
customer actions&lt;br&gt;
internal operations&lt;br&gt;
regulated processes&lt;br&gt;
In these environments, the standard changes.&lt;/p&gt;

&lt;p&gt;The question is no longer:&lt;/p&gt;

&lt;p&gt;“Did the system seem to work?”&lt;/p&gt;

&lt;p&gt;It becomes:&lt;/p&gt;

&lt;p&gt;“Can you defend what it did when the decision is challenged?”&lt;/p&gt;

&lt;p&gt;That is a much higher bar.&lt;/p&gt;

&lt;p&gt;And standard logs were never designed to clear it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Shift: From Logging Agents to Certifying Them&lt;/strong&gt;&lt;br&gt;
There is a better model.&lt;/p&gt;

&lt;p&gt;Instead of trying to reconstruct an agent’s behavior after the fact, you capture the execution as it happens and turn it into a tamper-evident artifact.&lt;/p&gt;

&lt;p&gt;This is the core idea behind verifiable execution.&lt;/p&gt;

&lt;p&gt;And for agent workflows, that means generating a Certified Execution Record, or CER.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Definition: Certified Execution Record (CER)&lt;/strong&gt;&lt;br&gt;
A Certified Execution Record is a structured, tamper-evident artifact that captures an AI execution, including inputs, parameters, context, and outputs, in a form that can be independently verified later.&lt;/p&gt;

&lt;p&gt;The key difference is simple:&lt;/p&gt;

&lt;p&gt;Logs describe events.&lt;/p&gt;

&lt;p&gt;CERs capture the execution itself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What You Are Building in Under 30 Minutes&lt;/strong&gt;&lt;br&gt;
By the end of this process, you will have:&lt;/p&gt;

&lt;p&gt;an AI agent that emits a Certified Execution Record&lt;br&gt;
a portable artifact that captures inputs, tool calls, decisions, and outputs&lt;br&gt;
a way to verify the execution independently&lt;br&gt;
a workflow that produces audit-ready execution evidence by default&lt;br&gt;
That means you are not just running an agent.&lt;/p&gt;

&lt;p&gt;You are creating a record of what it did that can be:&lt;/p&gt;

&lt;p&gt;stored&lt;br&gt;
reviewed&lt;br&gt;
shared&lt;br&gt;
verified later&lt;br&gt;
&lt;strong&gt;Step 1: Install the NexArt SDK&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @nexart/agent-kit @nexart/ai-execution
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The goal here is to remove friction.&lt;/p&gt;

&lt;p&gt;You should not have to manually assemble execution artifacts or wire low-level primitives just to make an agent verifiable.&lt;/p&gt;

&lt;p&gt;That is what @nexart/agent-kit is designed to handle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Wrap Your Agent Execution&lt;/strong&gt;&lt;br&gt;
Here is a minimal example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;runWithCer&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@nexart/agent-kit&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;runWithCer&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Should we approve this transaction?&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;decision&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;yourAgent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;input&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;output&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;decision&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;decision&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;toolsUsed&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;reasoning&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;decision&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;reasoning&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What happens here:&lt;/p&gt;

&lt;p&gt;your agent runs normally&lt;br&gt;
execution context is captured automatically&lt;br&gt;
a Certified Execution Record is generated as part of the run&lt;br&gt;
This is the important shift:&lt;/p&gt;

&lt;p&gt;you are no longer treating verification as something you add later.&lt;/p&gt;

&lt;p&gt;Write on Medium&lt;br&gt;
It becomes part of the execution path itself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Export the CER&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;exportCer&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@nexart/ai-execution;&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cerBundle&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;exportCer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;cer&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This produces a portable execution artifact.&lt;/p&gt;

&lt;p&gt;That means the result can now be:&lt;/p&gt;

&lt;p&gt;stored for future review&lt;br&gt;
attached to a workflow&lt;br&gt;
sent to another team&lt;br&gt;
used in audit or incident analysis&lt;br&gt;
validated independently later&lt;br&gt;
This is where the system starts to feel different.&lt;/p&gt;

&lt;p&gt;You are no longer left with logs buried inside an internal stack.&lt;/p&gt;

&lt;p&gt;You now have a standalone record of what happened.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Verify the Execution&lt;/strong&gt;&lt;br&gt;
Once the CER exists, you can verify it independently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option A: CLI&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx nexart ai verify cer.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Option B: Public verifier&lt;/strong&gt;&lt;br&gt;
👉 &lt;a href="https://verify.nexart.io" rel="noopener noreferrer"&gt;https://verify.nexart.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can:&lt;/p&gt;

&lt;p&gt;upload a CER&lt;br&gt;
inspect execution data&lt;br&gt;
verify integrity&lt;br&gt;
review attestation if present&lt;br&gt;
No login required. No dependency on your internal system. No need to trust the original application.&lt;/p&gt;

&lt;p&gt;That changes the trust model completely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What This Looks Like Before and After&lt;/strong&gt;&lt;br&gt;
Before&lt;br&gt;
the agent runs&lt;br&gt;
logs are scattered across systems&lt;br&gt;
debugging is manual&lt;br&gt;
audits require reconstruction&lt;br&gt;
trust is implicit&lt;br&gt;
After&lt;br&gt;
the agent runs&lt;br&gt;
a CER is created automatically&lt;br&gt;
the execution is captured in one artifact&lt;br&gt;
verification is immediate&lt;br&gt;
trust becomes checkable&lt;br&gt;
That is the practical difference between observability and execution evidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why This Is Easier Now Than It Used to Be&lt;/strong&gt;&lt;br&gt;
This workflow is much easier to adopt today than it was even recently.&lt;/p&gt;

&lt;p&gt;The NexArt builder stack has been tightened around a cleaner execution-evidence workflow so builders can certify agent execution without dealing with unnecessary assembly work.&lt;/p&gt;

&lt;p&gt;That includes improvements across the stack:&lt;/p&gt;

&lt;p&gt;agent workflows can emit standard CERs directly through @nexart/agent-kit&lt;br&gt;
CER packages can be detected, assembled, exported, imported, and verified through @nexart/ai-execution&lt;br&gt;
the CLI can verify both raw CER bundles and CER packages&lt;br&gt;
the broader stack now aligns around the same supported artifact shapes&lt;br&gt;
That matters because execution evidence only works if builders can use it without fighting the tooling.&lt;/p&gt;

&lt;p&gt;The goal is not just stronger verification.&lt;/p&gt;

&lt;p&gt;It is making strong verification easy enough to become part of everyday development.&lt;/p&gt;

&lt;p&gt;Just as importantly, these changes remain additive and backward-compatible.&lt;/p&gt;

&lt;p&gt;That preserves one of NexArt’s most important properties:&lt;/p&gt;

&lt;p&gt;previously created CERs must remain independently auditable and verifiable over time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why This Matters Specifically for Agents&lt;/strong&gt;&lt;br&gt;
Agent systems are harder to reason about than simple model calls.&lt;/p&gt;

&lt;p&gt;A single execution may involve:&lt;/p&gt;

&lt;p&gt;multiple prompts&lt;br&gt;
tool selection&lt;br&gt;
branching decisions&lt;br&gt;
external API calls&lt;br&gt;
intermediate state changes&lt;br&gt;
final actions&lt;br&gt;
When something breaks, the problem is usually not just the final output.&lt;/p&gt;

&lt;p&gt;The real question is:&lt;/p&gt;

&lt;p&gt;What sequence of actions and decisions produced this outcome?&lt;/p&gt;

&lt;p&gt;That is an execution problem.&lt;/p&gt;

&lt;p&gt;And execution problems need structured evidence, not scattered logs.&lt;/p&gt;

&lt;p&gt;CERs give you that structure.&lt;/p&gt;

&lt;p&gt;They let you capture:&lt;/p&gt;

&lt;p&gt;what the agent saw&lt;br&gt;
what it did&lt;br&gt;
what tools it used&lt;br&gt;
what output it produced&lt;br&gt;
whether that record is still intact&lt;br&gt;
That is what makes agent execution defensible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where You Should Start&lt;/strong&gt;&lt;br&gt;
You do not need to make every agent verifiable on day one.&lt;/p&gt;

&lt;p&gt;Start where the operational or trust risk is highest.&lt;/p&gt;

&lt;p&gt;Good starting points include:&lt;/p&gt;

&lt;p&gt;agents that affect users directly&lt;br&gt;
agents that call external tools&lt;br&gt;
financial or operational workflows&lt;br&gt;
approval or escalation flows&lt;br&gt;
systems likely to be reviewed later&lt;br&gt;
anything that could become a dispute or audit issue&lt;br&gt;
That is where verifiable execution creates immediate value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Better Mental Model&lt;/strong&gt;&lt;br&gt;
Most systems today operate like this:&lt;/p&gt;

&lt;p&gt;Execution → Logs → Reconstruction&lt;/p&gt;

&lt;p&gt;With NexArt, the model becomes:&lt;/p&gt;

&lt;p&gt;Execution → Certified Artifact → Verification&lt;/p&gt;

&lt;p&gt;That removes a lot of pain:&lt;/p&gt;

&lt;p&gt;less manual correlation&lt;br&gt;
less guesswork&lt;br&gt;
less dependence on internal trust&lt;br&gt;
better portability&lt;br&gt;
better long-term defensibility&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why This Is Becoming the New Standard&lt;/strong&gt;&lt;br&gt;
As AI systems move into higher-stakes environments, the standard is changing.&lt;/p&gt;

&lt;p&gt;Teams increasingly need:&lt;/p&gt;

&lt;p&gt;execution integrity&lt;br&gt;
tamper-evident records&lt;br&gt;
independent verification&lt;br&gt;
audit-ready evidence&lt;br&gt;
clearer provenance for agent decisions&lt;br&gt;
In that world, logs still matter.&lt;/p&gt;

&lt;p&gt;But they are not enough on their own.&lt;/p&gt;

&lt;p&gt;They tell you what happened from inside the system.&lt;/p&gt;

&lt;p&gt;Execution evidence lets you prove it from outside the system too.&lt;/p&gt;

&lt;p&gt;That is a very different capability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try It Yourself&lt;/strong&gt;&lt;br&gt;
If you want to see this in practice:&lt;/p&gt;

&lt;p&gt;👉 Verify a record → &lt;a href="https://verify.nexart.io" rel="noopener noreferrer"&gt;https://verify.nexart.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 Get started → &lt;a href="https://docs.nexart.io" rel="noopener noreferrer"&gt;https://docs.nexart.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can generate and verify your first CER in minutes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thought&lt;/strong&gt;&lt;br&gt;
AI agents are becoming decision-makers, not just assistants.&lt;/p&gt;

&lt;p&gt;As that happens, the bar gets higher.&lt;/p&gt;

&lt;p&gt;It is no longer enough to say:&lt;/p&gt;

&lt;p&gt;“We logged what happened.”&lt;/p&gt;

&lt;p&gt;You need to be able to say:&lt;/p&gt;

&lt;p&gt;“Here is what happened. You can verify it.”&lt;/p&gt;

&lt;p&gt;That is the shift from observability to verifiable execution.&lt;/p&gt;

&lt;p&gt;And for agent systems, that shift is going to matter a lot.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>devops</category>
      <category>infrastructure</category>
    </item>
    <item>
      <title>Why We Built verify.nexart.io</title>
      <dc:creator>Jb</dc:creator>
      <pubDate>Wed, 25 Mar 2026 11:28:24 +0000</pubDate>
      <link>https://dev.to/arrotu/why-we-built-verifynexartio-2cl0</link>
      <guid>https://dev.to/arrotu/why-we-built-verifynexartio-2cl0</guid>
      <description>&lt;p&gt;AI systems are increasingly used to ...&lt;br&gt;
AI systems are increasingly used to produce outputs, decisions, and actions that matter.&lt;/p&gt;

&lt;p&gt;They:&lt;/p&gt;

&lt;p&gt;trigger workflows&lt;/p&gt;

&lt;p&gt;call external tools&lt;/p&gt;

&lt;p&gt;influence financial and operational outcomes&lt;/p&gt;

&lt;p&gt;act across multiple systems as agents&lt;/p&gt;

&lt;p&gt;But there is a structural problem.&lt;/p&gt;

&lt;p&gt;Most AI systems do not provide a clean way to independently verify what actually ran.&lt;/p&gt;

&lt;p&gt;They produce outputs.&lt;/p&gt;

&lt;p&gt;They generate logs.&lt;/p&gt;

&lt;p&gt;They may even store execution data.&lt;/p&gt;

&lt;p&gt;But they rarely provide a place where that execution can be checked by someone else.&lt;/p&gt;

&lt;p&gt;That is the gap verify.nexart.io is designed to solve.&lt;/p&gt;

&lt;p&gt;The Problem: Execution Without Independent Verification&lt;br&gt;
Most AI systems today follow a familiar pattern:&lt;/p&gt;

&lt;p&gt;execution happens&lt;/p&gt;

&lt;p&gt;logs are generated&lt;/p&gt;

&lt;p&gt;results are stored inside the system&lt;/p&gt;

&lt;p&gt;If someone wants to understand what happened, they must rely on:&lt;/p&gt;

&lt;p&gt;internal dashboards&lt;/p&gt;

&lt;p&gt;logs controlled by the system operator&lt;/p&gt;

&lt;p&gt;exported data from the original environment&lt;/p&gt;

&lt;p&gt;This creates a dependency:&lt;/p&gt;

&lt;p&gt;you can only verify the system by trusting the system.&lt;/p&gt;

&lt;p&gt;That is not real verification.&lt;/p&gt;

&lt;p&gt;Definition: Independent Verification&lt;br&gt;
Independent verification is the ability to validate an execution record without relying on the system that produced it.&lt;/p&gt;

&lt;p&gt;It means that:&lt;/p&gt;

&lt;p&gt;the record can be inspected outside the original environment&lt;/p&gt;

&lt;p&gt;integrity can be validated independently&lt;/p&gt;

&lt;p&gt;results do not depend on internal access or trust&lt;/p&gt;

&lt;p&gt;This is a critical requirement for AI auditability and execution integrity.&lt;/p&gt;

&lt;p&gt;Why Verification Needs Its Own Surface&lt;br&gt;
Execution and verification are not the same thing.&lt;/p&gt;

&lt;p&gt;Producing a record is one step.&lt;/p&gt;

&lt;p&gt;Validating that record is another.&lt;/p&gt;

&lt;p&gt;In most systems, these two steps are tightly coupled.&lt;/p&gt;

&lt;p&gt;The system that generates the data is also the system that displays and verifies it.&lt;/p&gt;

&lt;p&gt;This creates a limitation:&lt;/p&gt;

&lt;p&gt;verification is not portable&lt;/p&gt;

&lt;p&gt;verification is not independent&lt;/p&gt;

&lt;p&gt;verification is not usable by third parties&lt;/p&gt;

&lt;p&gt;A true verification system requires a separate surface.&lt;/p&gt;

&lt;p&gt;One that allows anyone to:&lt;/p&gt;

&lt;p&gt;inspect a record&lt;/p&gt;

&lt;p&gt;validate its integrity&lt;/p&gt;

&lt;p&gt;understand what happened&lt;/p&gt;

&lt;p&gt;do so without trusting the origin&lt;/p&gt;

&lt;p&gt;What verify.nexart.io Does&lt;br&gt;
verify.nexart.io is a public verification surface for Certified Execution Records (CERs).&lt;/p&gt;

&lt;p&gt;It allows anyone to take an execution record and validate it independently.&lt;/p&gt;

&lt;p&gt;What You Can Do with verify.nexart.io&lt;/p&gt;

&lt;p&gt;Look up or upload a CER&lt;br&gt;
You can:&lt;/p&gt;

&lt;p&gt;enter a certificate hash&lt;/p&gt;

&lt;p&gt;upload a record&lt;/p&gt;

&lt;p&gt;access a previously generated execution&lt;/p&gt;

&lt;p&gt;Inspect execution metadata&lt;br&gt;
Each record exposes structured information such as:&lt;/p&gt;

&lt;p&gt;inputs and parameters&lt;/p&gt;

&lt;p&gt;execution context&lt;/p&gt;

&lt;p&gt;runtime fingerprint&lt;/p&gt;

&lt;p&gt;output hash&lt;/p&gt;

&lt;p&gt;certificate identity&lt;/p&gt;

&lt;p&gt;This provides a clear view of what was recorded.&lt;/p&gt;

&lt;p&gt;Verify integrity&lt;br&gt;
The system checks:&lt;/p&gt;

&lt;p&gt;whether the record has been altered&lt;/p&gt;

&lt;p&gt;whether hashes match&lt;/p&gt;

&lt;p&gt;whether the structure is valid&lt;/p&gt;

&lt;p&gt;This ensures the record is tamper-evident.&lt;/p&gt;

&lt;p&gt;Replay or validate execution&lt;br&gt;
Where supported, you can:&lt;/p&gt;

&lt;p&gt;replay the execution&lt;/p&gt;

&lt;p&gt;verify deterministic consistency&lt;/p&gt;

&lt;p&gt;confirm that outputs match expectations&lt;/p&gt;

&lt;p&gt;This moves beyond static inspection into active verification.&lt;/p&gt;

&lt;p&gt;Review attestation&lt;br&gt;
If attestation is present, you can:&lt;/p&gt;

&lt;p&gt;verify signatures&lt;/p&gt;

&lt;p&gt;confirm origin&lt;/p&gt;

&lt;p&gt;validate that the record was produced by a known system&lt;/p&gt;

&lt;p&gt;Do all of this independently&lt;br&gt;
Most importantly:&lt;/p&gt;

&lt;p&gt;You can do all of this without trusting the original application.&lt;/p&gt;

&lt;p&gt;That is the key difference.&lt;/p&gt;

&lt;p&gt;Making Verification Usable for Builders&lt;br&gt;
Verification only matters if builders can actually produce verifiable records in the first place.&lt;/p&gt;

&lt;p&gt;One of the common challenges with execution-evidence systems is friction:&lt;/p&gt;

&lt;p&gt;too many primitives&lt;/p&gt;

&lt;p&gt;complex assembly of execution records&lt;/p&gt;

&lt;p&gt;inconsistent formats&lt;/p&gt;

&lt;p&gt;difficult verification workflows&lt;/p&gt;

&lt;p&gt;If producing a verifiable record is hard, adoption slows down.&lt;/p&gt;

&lt;p&gt;NexArt has focused on reducing this friction across the builder stack.&lt;/p&gt;

&lt;p&gt;A More Usable Execution-Evidence Workflow&lt;br&gt;
The NexArt ecosystem has been refined so that producing and verifying Certified Execution Records is more consistent and easier to adopt.&lt;/p&gt;

&lt;p&gt;Today, builders can:&lt;/p&gt;

&lt;p&gt;generate CERs directly from agent workflows&lt;/p&gt;

&lt;p&gt;capture tool calls and final decisions as structured execution evidence&lt;/p&gt;

&lt;p&gt;work with standardized record formats&lt;/p&gt;

&lt;p&gt;verify the same artifacts across SDK, CLI, and verification surfaces&lt;/p&gt;

&lt;p&gt;This removes the need to manually assemble execution records or wire low-level primitives.&lt;/p&gt;

&lt;p&gt;What This Enables in Practice&lt;br&gt;
These improvements make it possible to:&lt;/p&gt;

&lt;p&gt;treat agent execution as verifiable by default&lt;/p&gt;

&lt;p&gt;package execution records in a consistent format&lt;/p&gt;

&lt;p&gt;move records across systems without breaking verification&lt;/p&gt;

&lt;p&gt;validate records using the same structure everywhere&lt;/p&gt;

&lt;p&gt;Just as importantly, these changes are additive.&lt;/p&gt;

&lt;p&gt;Existing Certified Execution Records remain valid and independently verifiable.&lt;/p&gt;

&lt;p&gt;This is critical.&lt;/p&gt;

&lt;p&gt;Execution evidence must remain stable over time for auditability to work.&lt;/p&gt;

&lt;p&gt;From Concept to Infrastructure&lt;br&gt;
These changes move NexArt beyond a conceptual model.&lt;/p&gt;

&lt;p&gt;It becomes:&lt;/p&gt;

&lt;p&gt;easier to integrate&lt;/p&gt;

&lt;p&gt;easier to use&lt;/p&gt;

&lt;p&gt;easier to verify&lt;/p&gt;

&lt;p&gt;consistent across tools&lt;/p&gt;

&lt;p&gt;While still maintaining strict execution integrity.&lt;/p&gt;

&lt;p&gt;From Records to Verifiable Artifacts&lt;br&gt;
NexArt is not just about producing execution records.&lt;/p&gt;

&lt;p&gt;It is about turning those records into verifiable artifacts.&lt;/p&gt;

&lt;p&gt;Definition: Certified Execution Record (CER)&lt;br&gt;
A Certified Execution Record is a tamper-evident, cryptographically verifiable artifact that captures the inputs, parameters, context, and outputs of an AI execution in a form that can be independently validated.&lt;/p&gt;

&lt;p&gt;Producing a CER is one step.&lt;/p&gt;

&lt;p&gt;Making it independently verifiable is another.&lt;/p&gt;

&lt;p&gt;verify.nexart.io is where that second step happens.&lt;/p&gt;

&lt;p&gt;Why We Built It&lt;br&gt;
We built verify.nexart.io because execution evidence is only useful if it can be checked.&lt;/p&gt;

&lt;p&gt;This matters for multiple audiences.&lt;/p&gt;

&lt;p&gt;For Builders&lt;br&gt;
debug and validate execution&lt;/p&gt;

&lt;p&gt;share results with others&lt;/p&gt;

&lt;p&gt;prove behavior without exposing internal systems&lt;/p&gt;

&lt;p&gt;For Counterparties&lt;br&gt;
verify claims made by another system&lt;/p&gt;

&lt;p&gt;inspect execution context&lt;/p&gt;

&lt;p&gt;validate outputs independently&lt;/p&gt;

&lt;p&gt;For Auditors&lt;br&gt;
review execution records&lt;/p&gt;

&lt;p&gt;validate integrity&lt;/p&gt;

&lt;p&gt;support governance and compliance processes&lt;/p&gt;

&lt;p&gt;For Future Review&lt;br&gt;
revisit past executions&lt;/p&gt;

&lt;p&gt;validate records months later&lt;/p&gt;

&lt;p&gt;ensure long-term integrity&lt;/p&gt;

&lt;p&gt;For Disputes&lt;br&gt;
provide evidence of what happened&lt;/p&gt;

&lt;p&gt;reduce ambiguity&lt;/p&gt;

&lt;p&gt;support structured resolution&lt;/p&gt;

&lt;p&gt;A record that cannot be independently checked is limited.&lt;/p&gt;

&lt;p&gt;Verification is what makes it useful.&lt;/p&gt;

&lt;p&gt;Why This Is Not Just Another Dashboard&lt;br&gt;
A dashboard is built for operators.&lt;/p&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;p&gt;internal&lt;/p&gt;

&lt;p&gt;tied to a specific system&lt;/p&gt;

&lt;p&gt;optimized for monitoring&lt;/p&gt;

&lt;p&gt;A verification surface is different.&lt;/p&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;p&gt;independent&lt;/p&gt;

&lt;p&gt;portable&lt;/p&gt;

&lt;p&gt;usable by third parties&lt;/p&gt;

&lt;p&gt;designed for validation&lt;/p&gt;

&lt;p&gt;This represents a shift.&lt;/p&gt;

&lt;p&gt;From: “We tell you what happened” To: “You can verify it yourself”&lt;/p&gt;

&lt;p&gt;Why This Matters for AI Systems&lt;br&gt;
As AI systems become more complex and more autonomous, verification becomes critical.&lt;/p&gt;

&lt;p&gt;This is especially true for:&lt;/p&gt;

&lt;p&gt;agent execution&lt;/p&gt;

&lt;p&gt;multi-step workflows&lt;/p&gt;

&lt;p&gt;compliance-sensitive systems&lt;/p&gt;

&lt;p&gt;financial and operational decisions&lt;/p&gt;

&lt;p&gt;In these environments, trust cannot rely on internal systems alone.&lt;/p&gt;

&lt;p&gt;It must be supported by independent verification.&lt;/p&gt;

&lt;p&gt;A New Standard for AI Infrastructure&lt;br&gt;
Verification is becoming a core layer in AI infrastructure.&lt;/p&gt;

&lt;p&gt;The stack is evolving to include:&lt;/p&gt;

&lt;p&gt;model providers&lt;/p&gt;

&lt;p&gt;orchestration frameworks&lt;/p&gt;

&lt;p&gt;observability tools&lt;/p&gt;

&lt;p&gt;governance systems&lt;/p&gt;

&lt;p&gt;execution verification infrastructure&lt;/p&gt;

&lt;p&gt;This layer ensures that:&lt;/p&gt;

&lt;p&gt;execution records are trustworthy&lt;/p&gt;

&lt;p&gt;verification is independent&lt;/p&gt;

&lt;p&gt;auditability is possible&lt;/p&gt;

&lt;p&gt;verify.nexart.io is part of that layer.&lt;/p&gt;

&lt;p&gt;The Core Idea&lt;br&gt;
Producing a record is not enough.&lt;/p&gt;

&lt;p&gt;That record must also have a place where it can be independently checked.&lt;/p&gt;

&lt;p&gt;That is what verify.nexart.io provides.&lt;/p&gt;

&lt;p&gt;Final Thought&lt;br&gt;
AI systems are becoming more powerful.&lt;/p&gt;

&lt;p&gt;But power without verification creates risk.&lt;/p&gt;

&lt;p&gt;If systems are going to be trusted, they must be open to inspection.&lt;/p&gt;

&lt;p&gt;Not through dashboards.&lt;/p&gt;

&lt;p&gt;Not through logs.&lt;/p&gt;

&lt;p&gt;But through verifiable artifacts that anyone can check.&lt;/p&gt;

&lt;p&gt;verify.nexart.io is a step toward that model.&lt;/p&gt;

&lt;p&gt;Try It&lt;br&gt;
&lt;a href="https://verify.nexart.io" rel="noopener noreferrer"&gt;https://verify.nexart.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.nexart.io" rel="noopener noreferrer"&gt;https://docs.nexart.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://nexart.io" rel="noopener noreferrer"&gt;https://nexart.io&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>architecture</category>
    </item>
    <item>
      <title>AI Auditability and the EU AI Act: Why Execution Evidence Matters</title>
      <dc:creator>Jb</dc:creator>
      <pubDate>Tue, 24 Mar 2026 09:54:46 +0000</pubDate>
      <link>https://dev.to/arrotu/ai-auditability-and-the-eu-ai-act-why-execution-evidence-matters-59n2</link>
      <guid>https://dev.to/arrotu/ai-auditability-and-the-eu-ai-act-why-execution-evidence-matters-59n2</guid>
      <description>&lt;p&gt;AI systems are moving from experimentation into regulated environments.&lt;/p&gt;

&lt;p&gt;They are now used to:&lt;/p&gt;

&lt;p&gt;evaluate financial transactions&lt;br&gt;
support compliance decisions&lt;br&gt;
automate internal workflows&lt;br&gt;
assist in hiring and lending&lt;br&gt;
operate as agents across multiple systems&lt;br&gt;
As this shift happens, one requirement is becoming unavoidable:&lt;/p&gt;

&lt;p&gt;AI systems must be auditable.&lt;/p&gt;

&lt;p&gt;The EU AI Act makes this expectation explicit.&lt;/p&gt;

&lt;p&gt;But there is a problem.&lt;/p&gt;

&lt;p&gt;Most AI systems today are not built to support real auditability.&lt;/p&gt;

&lt;p&gt;Definition: AI Auditability&lt;br&gt;
AI auditability is the ability to reconstruct, inspect, and validate how an AI system produced a decision, including inputs, parameters, context, and outputs.&lt;/p&gt;

&lt;p&gt;Auditability is not just about visibility.&lt;/p&gt;

&lt;p&gt;It requires verifiable execution evidence.&lt;/p&gt;

&lt;p&gt;What the EU AI Act Requires in Practice&lt;br&gt;
The EU AI Act does not prescribe a single technical architecture.&lt;/p&gt;

&lt;p&gt;But it establishes clear expectations, especially for high-risk AI systems.&lt;/p&gt;

&lt;p&gt;These expectations include:&lt;/p&gt;

&lt;p&gt;Traceability&lt;br&gt;
Systems must allow reconstruction of decisions and behaviors.&lt;/p&gt;

&lt;p&gt;Record-Keeping&lt;br&gt;
Organizations must maintain records of system operation over time.&lt;/p&gt;

&lt;p&gt;Transparency&lt;br&gt;
Outputs and decision processes must be explainable and reviewable.&lt;/p&gt;

&lt;p&gt;Accountability&lt;br&gt;
Organizations must be able to justify and defend system outcomes.&lt;/p&gt;

&lt;p&gt;At a practical level, the regulation is asking:&lt;/p&gt;

&lt;p&gt;Can this system’s decisions be reconstructed, understood, and validated after the fact?&lt;/p&gt;

&lt;p&gt;The Reality: Most AI Systems Cannot Do This&lt;br&gt;
In theory, many teams believe they are covered.&lt;/p&gt;

&lt;p&gt;They have:&lt;/p&gt;

&lt;p&gt;logs&lt;br&gt;
tracing systems&lt;br&gt;
monitoring dashboards&lt;br&gt;
database records&lt;br&gt;
But these tools were not designed for auditability.&lt;/p&gt;

&lt;p&gt;They were designed for observability.&lt;/p&gt;

&lt;p&gt;Why Logs and Traces Are Not Enough&lt;br&gt;
There is a common assumption:&lt;/p&gt;

&lt;p&gt;“If we log everything, we can reconstruct anything.”&lt;/p&gt;

&lt;p&gt;In practice, this breaks down quickly.&lt;/p&gt;

&lt;p&gt;AI execution is often:&lt;/p&gt;

&lt;p&gt;distributed across services&lt;br&gt;
dependent on external APIs&lt;br&gt;
dynamically constructed at runtime&lt;br&gt;
influenced by context signals&lt;br&gt;
composed of multiple steps&lt;br&gt;
This leads to:&lt;/p&gt;

&lt;p&gt;fragmented data&lt;br&gt;
incomplete records&lt;br&gt;
difficult correlation&lt;br&gt;
platform dependency&lt;br&gt;
mutable history&lt;br&gt;
When a decision is questioned months later, teams often cannot produce a single, reliable record of what actually happened.&lt;/p&gt;

&lt;p&gt;Visibility vs Auditability&lt;br&gt;
This is the core distinction.&lt;/p&gt;

&lt;p&gt;Visibility answers:&lt;/p&gt;

&lt;p&gt;What can we observe while the system runs?&lt;/p&gt;

&lt;p&gt;Auditability answers:&lt;/p&gt;

&lt;p&gt;Can we prove what actually happened?&lt;/p&gt;

&lt;p&gt;To meet EU AI Act expectations, systems must go beyond visibility.&lt;/p&gt;

&lt;p&gt;They need execution integrity.&lt;/p&gt;

&lt;p&gt;Definition: Execution Integrity&lt;br&gt;
Execution integrity means that an AI system can produce a complete, tamper-evident, and verifiable record of what actually ran.&lt;/p&gt;

&lt;p&gt;This includes:&lt;/p&gt;

&lt;p&gt;inputs&lt;br&gt;
parameters&lt;br&gt;
runtime environment&lt;br&gt;
context signals&lt;br&gt;
outputs&lt;br&gt;
And critically:&lt;/p&gt;

&lt;p&gt;proof that the record has not been altered&lt;br&gt;
The Missing Piece: Execution Evidence&lt;br&gt;
Execution evidence is what makes auditability real.&lt;/p&gt;

&lt;p&gt;Instead of reconstructing events from logs, the system produces a structured record during execution.&lt;/p&gt;

&lt;p&gt;This record becomes:&lt;/p&gt;

&lt;p&gt;a source of truth&lt;br&gt;
a verifiable artifact&lt;br&gt;
a unit of audit&lt;br&gt;
This changes the model:&lt;/p&gt;

&lt;p&gt;Traditional systems&lt;/p&gt;

&lt;p&gt;Execution → Logs → Reconstruction&lt;/p&gt;

&lt;p&gt;Verifiable systems&lt;/p&gt;

&lt;p&gt;Execution → Evidence → Verification&lt;/p&gt;

&lt;p&gt;Certified Execution Records (CERs)&lt;br&gt;
Certified Execution Records provide a concrete implementation of execution evidence.&lt;/p&gt;

&lt;p&gt;Definition: Certified Execution Record (CER)&lt;br&gt;
A Certified Execution Record is a tamper-evident, cryptographically verifiable artifact that captures the full context of an AI execution, including inputs, parameters, runtime conditions, and outputs.&lt;/p&gt;

&lt;p&gt;Become a Medium member&lt;br&gt;
A CER includes:&lt;/p&gt;

&lt;p&gt;inputs and parameters&lt;br&gt;
execution context and signals&lt;br&gt;
runtime fingerprint&lt;br&gt;
output hash&lt;br&gt;
certificate identity&lt;br&gt;
Because these elements are bound together, CERs provide:&lt;/p&gt;

&lt;p&gt;execution integrity&lt;br&gt;
auditability&lt;br&gt;
independent verification&lt;br&gt;
long-term traceability&lt;br&gt;
How Execution Evidence Maps to EU AI Act Requirements&lt;br&gt;
Execution evidence directly supports regulatory expectations.&lt;/p&gt;

&lt;p&gt;Here is a simple mapping:&lt;/p&gt;

&lt;p&gt;Traceability&lt;br&gt;
Execution evidence provides structured records of inputs, context, and outputs.&lt;/p&gt;

&lt;p&gt;Record-Keeping&lt;br&gt;
Certified Execution Records act as persistent, tamper-evident records of system activity.&lt;/p&gt;

&lt;p&gt;Transparency&lt;br&gt;
Execution records can be inspected and reviewed after the fact.&lt;/p&gt;

&lt;p&gt;Accountability&lt;br&gt;
Execution evidence allows organizations to prove what happened and defend decisions.&lt;/p&gt;

&lt;p&gt;This is not about adding more logs.&lt;/p&gt;

&lt;p&gt;It is about changing how execution is recorded.&lt;/p&gt;

&lt;p&gt;Tamper-Evident Records and Attestation&lt;br&gt;
Two technical properties are essential for auditability.&lt;/p&gt;

&lt;p&gt;Tamper-Evident Records&lt;br&gt;
Execution records are cryptographically protected.&lt;/p&gt;

&lt;p&gt;This ensures:&lt;/p&gt;

&lt;p&gt;any modification is detectable&lt;br&gt;
records remain trustworthy&lt;br&gt;
integrity can be validated independently&lt;br&gt;
Attestation&lt;br&gt;
Attestation adds a layer of verifiable origin.&lt;/p&gt;

&lt;p&gt;It allows a system to:&lt;/p&gt;

&lt;p&gt;sign an execution record&lt;br&gt;
prove where it was generated&lt;br&gt;
enable third-party validation&lt;br&gt;
Together, these properties provide a foundation for trustworthy AI systems.&lt;/p&gt;

&lt;p&gt;Why This Matters for High-Risk AI Systems&lt;br&gt;
The EU AI Act places stronger requirements on high-risk systems.&lt;/p&gt;

&lt;p&gt;These include systems used in:&lt;/p&gt;

&lt;p&gt;finance&lt;br&gt;
healthcare&lt;br&gt;
employment&lt;br&gt;
law enforcement&lt;br&gt;
critical infrastructure&lt;br&gt;
In these environments, organizations must:&lt;/p&gt;

&lt;p&gt;reconstruct decisions&lt;br&gt;
explain outcomes&lt;br&gt;
provide evidence&lt;br&gt;
support audits and investigations&lt;br&gt;
Logs alone are not sufficient.&lt;/p&gt;

&lt;p&gt;Execution evidence becomes necessary.&lt;/p&gt;

&lt;p&gt;AI Agents Make Auditability Harder&lt;br&gt;
Modern AI systems are evolving into agent-based systems.&lt;/p&gt;

&lt;p&gt;Agent execution often includes:&lt;/p&gt;

&lt;p&gt;multi-step reasoning&lt;br&gt;
tool usage&lt;br&gt;
external data retrieval&lt;br&gt;
dynamic decision-making&lt;br&gt;
state changes across systems&lt;br&gt;
This creates complex execution chains.&lt;/p&gt;

&lt;p&gt;Without structured evidence, these chains are difficult to:&lt;/p&gt;

&lt;p&gt;reconstruct&lt;br&gt;
validate&lt;br&gt;
audit&lt;br&gt;
Execution evidence allows these workflows to be captured as verifiable records.&lt;/p&gt;

&lt;p&gt;A New Layer in AI Infrastructure&lt;br&gt;
Auditability is no longer just a compliance feature.&lt;/p&gt;

&lt;p&gt;It is becoming a core infrastructure layer.&lt;/p&gt;

&lt;p&gt;The modern AI stack now includes:&lt;/p&gt;

&lt;p&gt;model providers&lt;br&gt;
orchestration frameworks&lt;br&gt;
observability tools&lt;br&gt;
governance systems&lt;br&gt;
execution verification infrastructure&lt;br&gt;
This layer is responsible for:&lt;/p&gt;

&lt;p&gt;producing execution evidence&lt;br&gt;
ensuring execution integrity&lt;br&gt;
enabling independent verification&lt;br&gt;
supporting auditability&lt;br&gt;
This is where platforms like NexArt operate.&lt;/p&gt;

&lt;p&gt;What This Means for Builders and Enterprises&lt;br&gt;
If you are building or deploying AI systems, you should ask:&lt;/p&gt;

&lt;p&gt;Can we produce a verifiable record of each execution?&lt;br&gt;
Can we prove that records have not been altered?&lt;br&gt;
Can we support audits without relying on internal logs?&lt;br&gt;
Can we provide evidence months or years later?&lt;br&gt;
If the answer is no, auditability is incomplete.&lt;/p&gt;

&lt;p&gt;Execution evidence fills that gap.&lt;/p&gt;

&lt;p&gt;Final Thought&lt;br&gt;
The EU AI Act does not require a specific technology.&lt;/p&gt;

&lt;p&gt;But it requires something more fundamental:&lt;/p&gt;

&lt;p&gt;the ability to trust AI systems.&lt;/p&gt;

&lt;p&gt;That trust is not built on logs.&lt;/p&gt;

&lt;p&gt;It is built on evidence.&lt;/p&gt;

&lt;p&gt;As AI systems become more regulated and more critical, the standard shifts from:&lt;/p&gt;

&lt;p&gt;“Can we observe the system?” to: “Can we prove what it did?”&lt;/p&gt;

&lt;p&gt;That is the foundation of AI auditability.&lt;/p&gt;

&lt;p&gt;Learn More&lt;br&gt;
&lt;a href="https://nexart.io" rel="noopener noreferrer"&gt;https://nexart.io&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.nexart.io" rel="noopener noreferrer"&gt;https://docs.nexart.io&lt;/a&gt;&lt;br&gt;
&lt;a href="https://verify.nexart.io" rel="noopener noreferrer"&gt;https://verify.nexart.io&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>auditability</category>
      <category>infrastructure</category>
    </item>
    <item>
      <title>Verifiable AI Execution vs zkML: What NexArt Proves, What It Doesn’t, and How Privacy Works in Practice</title>
      <dc:creator>Jb</dc:creator>
      <pubDate>Mon, 23 Mar 2026 15:22:46 +0000</pubDate>
      <link>https://dev.to/arrotu/verifiable-ai-execution-vs-zkml-what-nexart-proves-what-it-doesnt-and-how-privacy-works-in-1k11</link>
      <guid>https://dev.to/arrotu/verifiable-ai-execution-vs-zkml-what-nexart-proves-what-it-doesnt-and-how-privacy-works-in-1k11</guid>
      <description>&lt;p&gt;AI systems are becoming more powerful, more autonomous, and more integrated into real-world workflows.&lt;/p&gt;

&lt;p&gt;At the same time, a new phrase is appearing everywhere: verifiable AI&lt;/p&gt;

&lt;p&gt;But that phrase is used to describe very different things.&lt;/p&gt;

&lt;p&gt;Sometimes it refers to:&lt;/p&gt;

&lt;p&gt;proving that a model ran&lt;br&gt;
proving that a record was not altered&lt;br&gt;
proving that a computation is correct&lt;br&gt;
proving something without revealing data&lt;br&gt;
proving compliance or auditability&lt;br&gt;
These are not the same problem.&lt;/p&gt;

&lt;p&gt;And they are not solved by the same infrastructure.&lt;/p&gt;

&lt;p&gt;This is where confusion starts.&lt;/p&gt;

&lt;p&gt;This article clarifies the distinction between verifiable AI execution and zkML, explains what NexArt actually proves, and outlines the privacy model NexArt supports today.&lt;/p&gt;

&lt;p&gt;The Confusion Around Verifiable AI&lt;br&gt;
The term “verifiable AI” is often used as a catch-all.&lt;/p&gt;

&lt;p&gt;But in practice, it covers at least two distinct categories:&lt;/p&gt;

&lt;p&gt;execution evidence systems&lt;br&gt;
computation proof systems&lt;br&gt;
NexArt and zkML sit in different parts of this landscape.&lt;/p&gt;

&lt;p&gt;Understanding that difference is critical.&lt;/p&gt;

&lt;p&gt;What NexArt Actually Does&lt;br&gt;
NexArt focuses on verifiable execution records.&lt;/p&gt;

&lt;p&gt;It produces Certified Execution Records (CERs), which are:&lt;/p&gt;

&lt;p&gt;cryptographically sealed execution artifacts&lt;br&gt;
structured records of inputs, outputs, parameters, and context&lt;br&gt;
tamper-evident and independently verifiable&lt;br&gt;
optionally signed through attestation&lt;br&gt;
These records are designed to capture AI execution evidence.&lt;/p&gt;

&lt;p&gt;Definition: Certified Execution Record (CER)&lt;br&gt;
A Certified Execution Record is a tamper-evident, cryptographically verifiable artifact that captures the essential facts of an AI execution, including inputs, parameters, runtime context, and outputs, in a form that can be independently validated later.&lt;/p&gt;

&lt;p&gt;What a Certified Execution Record Proves&lt;br&gt;
A CER allows a system to prove:&lt;/p&gt;

&lt;p&gt;that an execution record has not been modified&lt;br&gt;
what inputs and parameters were recorded&lt;br&gt;
what output was produced&lt;br&gt;
what execution context existed&lt;br&gt;
the integrity and chain of custody of the record&lt;br&gt;
This provides execution integrity and supports AI auditability.&lt;/p&gt;

&lt;p&gt;What NexArt Does Not Prove&lt;br&gt;
It is important to be precise.&lt;/p&gt;

&lt;p&gt;NexArt does not:&lt;/p&gt;

&lt;p&gt;guarantee LLM determinism&lt;br&gt;
prove that an output is correct&lt;br&gt;
prove hidden computation correctness&lt;br&gt;
provide zero-knowledge privacy by default&lt;br&gt;
NexArt is not trying to prove that a computation is correct.&lt;/p&gt;

&lt;p&gt;It is proving that a record of execution is authentic, tamper-evident, and intact.&lt;/p&gt;

&lt;p&gt;What zkML Proves Instead&lt;br&gt;
zkML, or zero-knowledge machine learning, focuses on a different problem.&lt;/p&gt;

&lt;p&gt;It aims to prove that:&lt;/p&gt;

&lt;p&gt;a specific computation was executed correctly&lt;br&gt;
a model produced a result according to a defined circuit&lt;br&gt;
certain properties hold without revealing underlying data&lt;br&gt;
This often involves:&lt;/p&gt;

&lt;p&gt;zero-knowledge proofs&lt;br&gt;
cryptographic circuits&lt;br&gt;
privacy-preserving computation&lt;br&gt;
Definition: zkML&lt;br&gt;
zkML refers to techniques that use zero-knowledge proofs to verify that a machine learning computation was performed correctly, often without revealing the underlying data or model details.&lt;/p&gt;

&lt;p&gt;zkML Is About Computation, Not Execution Records&lt;br&gt;
This is the key distinction:&lt;/p&gt;

&lt;p&gt;zkML is computation-proof infrastructure.&lt;/p&gt;

&lt;p&gt;NexArt is execution-evidence infrastructure.&lt;/p&gt;

&lt;p&gt;zkML answers:&lt;/p&gt;

&lt;p&gt;Can we prove this computation is correct?&lt;/p&gt;

&lt;p&gt;NexArt answers:&lt;/p&gt;

&lt;p&gt;Can we prove what actually ran?&lt;/p&gt;

&lt;p&gt;These are different trust problems.&lt;/p&gt;

&lt;p&gt;Transparent Evidence vs Private Proofs&lt;br&gt;
These two approaches represent different trust models.&lt;/p&gt;

&lt;p&gt;NexArt&lt;br&gt;
Transparent by default.&lt;/p&gt;

&lt;p&gt;designed for auditability&lt;br&gt;
supports debugging and investigation&lt;br&gt;
captures full execution context&lt;br&gt;
produces tamper-evident execution records&lt;br&gt;
Best suited for:&lt;/p&gt;

&lt;p&gt;enterprise AI workflows&lt;br&gt;
governance and compliance&lt;br&gt;
agent execution tracking&lt;br&gt;
incident analysis&lt;br&gt;
zkML&lt;br&gt;
Private proof by design.&lt;/p&gt;

&lt;p&gt;proves correctness without revealing full data&lt;br&gt;
supports confidential computation&lt;br&gt;
minimizes information disclosure&lt;br&gt;
Best suited for:&lt;/p&gt;

&lt;p&gt;privacy-sensitive environments&lt;br&gt;
on-chain verification&lt;br&gt;
hidden model or data scenarios&lt;br&gt;
These models are not mutually exclusive.&lt;/p&gt;

&lt;p&gt;They can be combined.&lt;/p&gt;

&lt;p&gt;Privacy in NexArt: The Levels That Exist Today&lt;br&gt;
NexArt is transparent by default, but supports selective privacy through structured mechanisms.&lt;/p&gt;

&lt;p&gt;Here is a practical privacy ladder.&lt;/p&gt;

&lt;p&gt;Privacy Level 1 — Full Transparency&lt;br&gt;
The execution record contains the full data.&lt;/p&gt;

&lt;p&gt;Best for:&lt;/p&gt;

&lt;p&gt;internal systems&lt;br&gt;
debugging&lt;br&gt;
full audit visibility&lt;br&gt;
Trade-off:&lt;/p&gt;

&lt;p&gt;maximum auditability&lt;br&gt;
minimal confidentiality&lt;br&gt;
Privacy Level 2 — Verifiable Redaction&lt;br&gt;
Sensitive fields are removed, but the resulting record remains verifiable.&lt;/p&gt;

&lt;p&gt;Become a Medium member&lt;br&gt;
Best for:&lt;/p&gt;

&lt;p&gt;external sharing&lt;br&gt;
customer-facing verification&lt;br&gt;
controlled disclosure&lt;br&gt;
Trade-off:&lt;/p&gt;

&lt;p&gt;protects sensitive data&lt;br&gt;
the redacted artifact becomes the new verifiable record&lt;br&gt;
Privacy Level 3 — Hash-Based Evidence&lt;br&gt;
Sensitive values are represented as hashes or envelopes.&lt;/p&gt;

&lt;p&gt;This allows later proof without revealing the data immediately.&lt;/p&gt;

&lt;p&gt;Best for:&lt;/p&gt;

&lt;p&gt;selective disclosure&lt;br&gt;
proving a value existed&lt;br&gt;
partial confidentiality&lt;br&gt;
Trade-off:&lt;/p&gt;

&lt;p&gt;preserves integrity&lt;br&gt;
does not provide full privacy guarantees&lt;br&gt;
Privacy Level 4 — External Evidence Reference&lt;br&gt;
Sensitive data remains outside the CER, referenced through hashes or metadata.&lt;/p&gt;

&lt;p&gt;Best for:&lt;/p&gt;

&lt;p&gt;enterprise-controlled environments&lt;br&gt;
restricted access systems&lt;br&gt;
compliance workflows&lt;br&gt;
Trade-off:&lt;/p&gt;

&lt;p&gt;stronger operational privacy&lt;br&gt;
depends on external systems for full verification&lt;br&gt;
Key principle&lt;/p&gt;

&lt;p&gt;NexArt is transparent by default, but selective privacy can be applied without breaking execution integrity.&lt;/p&gt;

&lt;p&gt;What NexArt Privacy Is Not&lt;br&gt;
To avoid confusion, it is important to be explicit.&lt;/p&gt;

&lt;p&gt;NexArt privacy is not:&lt;/p&gt;

&lt;p&gt;zero-knowledge proof of computation correctness&lt;br&gt;
full confidential inference&lt;br&gt;
hidden-model verification&lt;br&gt;
zk-style privacy without zk complexity&lt;br&gt;
NexArt’s privacy model is based on:&lt;/p&gt;

&lt;p&gt;selective redaction&lt;br&gt;
integrity preservation&lt;br&gt;
structured execution evidence&lt;br&gt;
It does not attempt to replace zero-knowledge systems.&lt;/p&gt;

&lt;p&gt;Why Execution Evidence Still Matters&lt;br&gt;
Many real-world AI systems need:&lt;/p&gt;

&lt;p&gt;tamper-evident execution records&lt;br&gt;
auditability and governance evidence&lt;br&gt;
structured context around decisions&lt;br&gt;
signed execution artifacts&lt;br&gt;
independently verifiable records&lt;br&gt;
These needs exist even without privacy-preserving computation proofs.&lt;/p&gt;

&lt;p&gt;This is especially important in:&lt;/p&gt;

&lt;p&gt;enterprise AI systems&lt;br&gt;
agent execution workflows&lt;br&gt;
governance pipelines&lt;br&gt;
incident investigations&lt;br&gt;
regulatory reporting&lt;br&gt;
Execution evidence is often the first requirement.&lt;/p&gt;

&lt;p&gt;Where This Fits in AI Regulation (EU AI Act and Beyond)&lt;br&gt;
Regulation is increasing the demand for verifiable AI systems.&lt;/p&gt;

&lt;p&gt;Frameworks like the EU AI Act emphasize:&lt;/p&gt;

&lt;p&gt;traceability of decisions&lt;br&gt;
documentation of system behavior&lt;br&gt;
auditability of AI workflows&lt;br&gt;
accountability in high-risk systems&lt;br&gt;
These requirements do not necessarily mandate zero-knowledge proofs.&lt;/p&gt;

&lt;p&gt;In many cases, they require something more practical:&lt;/p&gt;

&lt;p&gt;structured execution records&lt;br&gt;
tamper-evident execution evidence&lt;br&gt;
the ability to reconstruct and review decisions&lt;br&gt;
This is where verifiable AI execution becomes relevant.&lt;/p&gt;

&lt;p&gt;Systems like NexArt support:&lt;/p&gt;

&lt;p&gt;AI auditability&lt;br&gt;
governance workflows&lt;br&gt;
compliance documentation&lt;br&gt;
without requiring full computation-proof infrastructure.&lt;/p&gt;

&lt;p&gt;Where NexArt and zkML Can Work Together&lt;br&gt;
These systems can be complementary.&lt;/p&gt;

&lt;p&gt;A practical architecture could look like:&lt;/p&gt;

&lt;p&gt;NexArt records execution context, inputs, outputs, and provenance&lt;br&gt;
zkML proves correctness of specific sensitive computations&lt;br&gt;
together, they provide both:&lt;br&gt;
auditability&lt;br&gt;
privacy where needed&lt;br&gt;
For most systems today:&lt;/p&gt;

&lt;p&gt;execution evidence is the practical starting point&lt;br&gt;
computation proofs can be added selectively&lt;br&gt;
What This Means for Builders&lt;br&gt;
If you are building AI systems, ask:&lt;/p&gt;

&lt;p&gt;Do you need tamper-evident execution records?&lt;br&gt;
Do you need auditability and governance evidence?&lt;br&gt;
Do you need to track agent execution and decisions?&lt;br&gt;
Do you need selective privacy for certain fields?&lt;br&gt;
Do you truly need zero-knowledge computation proofs?&lt;br&gt;
In many cases:&lt;/p&gt;

&lt;p&gt;NexArt provides the execution evidence layer&lt;br&gt;
zkML or similar systems may be added for specific use cases&lt;br&gt;
Conclusion&lt;br&gt;
Verifiable AI execution is not the same as zero-knowledge AI proofs.&lt;/p&gt;

&lt;p&gt;NexArt is built for execution evidence:&lt;/p&gt;

&lt;p&gt;tamper-evident execution records&lt;br&gt;
attestation&lt;br&gt;
auditability&lt;br&gt;
execution integrity&lt;br&gt;
This is different from proving hidden computation correctness.&lt;/p&gt;

&lt;p&gt;Both categories matter.&lt;/p&gt;

&lt;p&gt;But they solve different problems.&lt;/p&gt;

&lt;p&gt;Not every trust problem in AI is a zero-knowledge problem.&lt;/p&gt;

&lt;p&gt;Many are execution-evidence problems first.&lt;/p&gt;

&lt;p&gt;Learn More&lt;br&gt;
&lt;a href="https://nexart.io" rel="noopener noreferrer"&gt;https://nexart.io&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.nexart.io" rel="noopener noreferrer"&gt;https://docs.nexart.io&lt;/a&gt;&lt;br&gt;
&lt;a href="https://verify.nexart.io" rel="noopener noreferrer"&gt;https://verify.nexart.io&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>privacy</category>
    </item>
    <item>
      <title>AI Audit Trails vs Verifiable Execution</title>
      <dc:creator>Jb</dc:creator>
      <pubDate>Mon, 23 Mar 2026 09:15:01 +0000</pubDate>
      <link>https://dev.to/arrotu/ai-audit-trails-vs-verifiable-execution-2j0d</link>
      <guid>https://dev.to/arrotu/ai-audit-trails-vs-verifiable-execution-2j0d</guid>
      <description>&lt;p&gt;AI systems are increasingly expected to be auditable.&lt;br&gt;
They make decisions, trigger workflows, call external tools, and interact with systems where outcomes matter.&lt;br&gt;
As a result, most teams implement audit trails.&lt;br&gt;
But there is a growing gap between what audit trails provide and what modern AI systems actually require.&lt;br&gt;
That gap is the difference between tracking behavior and proving execution.&lt;br&gt;
This article explores that gap, and why verifiable execution is emerging as a new foundation for AI auditability and execution integrity.&lt;br&gt;
Definition: AI Audit&amp;nbsp;Trail&lt;br&gt;
An AI audit trail is a record of events, actions, or decisions generated by a system, typically captured through logs, traces, or monitoring tools.&lt;br&gt;
Audit trails are designed to answer:&lt;br&gt;
What did the system report happened?&lt;br&gt;
They are essential for visibility.&lt;br&gt;
But visibility is not the same as proof.&lt;br&gt;
Why Audit Trails&amp;nbsp;Exist&lt;br&gt;
Audit trails play an important role in modern systems.&lt;br&gt;
They help teams:&lt;br&gt;
understand system behavior&lt;br&gt;
debug issues&lt;br&gt;
track decisions over time&lt;br&gt;
provide operational visibility&lt;br&gt;
support baseline compliance requirements&lt;/p&gt;

&lt;p&gt;In many traditional applications, this level of tracking is sufficient.&lt;br&gt;
But AI systems are different.&lt;br&gt;
The Limitation of Audit&amp;nbsp;Trails&lt;br&gt;
Audit trails are built on logs.&lt;br&gt;
Logs were not designed to serve as durable evidence.&lt;br&gt;
This introduces several structural limitations:&lt;br&gt;
records may be incomplete&lt;br&gt;
data is fragmented across systems&lt;br&gt;
logs depend on the originating platform&lt;br&gt;
records can be modified or overwritten&lt;br&gt;
correlation across services is difficult&lt;/p&gt;

&lt;p&gt;Even when logs are comprehensive, they rarely form a single, coherent record of AI execution.&lt;br&gt;
More importantly:&lt;br&gt;
They cannot be independently verified without trusting the system that produced them.&lt;br&gt;
Visibility vs Auditability&lt;br&gt;
A common misunderstanding is that visibility equals auditability.&lt;br&gt;
It does not.&lt;br&gt;
Visibility answers:&lt;br&gt;
What can we observe about the system?&lt;br&gt;
Auditability requires answering:&lt;br&gt;
Can we validate what actually happened?&lt;br&gt;
To achieve real auditability, systems need execution integrity.&lt;br&gt;
Definition: Execution Integrity&lt;br&gt;
Execution integrity means that a system can provide reliable, tamper-evident evidence of what actually ran, including inputs, parameters, runtime conditions, and outputs.&lt;br&gt;
It ensures that:&lt;br&gt;
execution records are complete&lt;br&gt;
records cannot be silently modified&lt;br&gt;
results can be validated independently&lt;/p&gt;

&lt;p&gt;This is where audit trails fall short.&lt;br&gt;
What Verifiable Execution Means&lt;br&gt;
Verifiable execution introduces a stronger model for AI execution.&lt;br&gt;
Instead of relying on logs, the system produces a structured artifact that represents the execution itself.&lt;br&gt;
This artifact is:&lt;br&gt;
complete&lt;br&gt;
portable&lt;br&gt;
tamper-evident&lt;br&gt;
independently verifiable&lt;/p&gt;

&lt;p&gt;It allows teams to answer a different question:&lt;br&gt;
Can we prove what actually ran?&lt;br&gt;
Audit Trails vs Verifiable Execution&lt;br&gt;
The difference becomes clearer when comparing their purpose.&lt;br&gt;
Audit Trails&lt;br&gt;
track events and system activity&lt;br&gt;
provide visibility into workflows&lt;br&gt;
depend on internal logs&lt;br&gt;
are difficult to validate independently&lt;br&gt;
are not designed as long-term evidence&lt;/p&gt;

&lt;p&gt;Verifiable Execution&lt;br&gt;
captures execution as a structured artifact&lt;br&gt;
produces tamper-evident records&lt;br&gt;
enables independent verification&lt;br&gt;
supports portability across systems&lt;br&gt;
is designed for long-term auditability&lt;/p&gt;

&lt;p&gt;Audit trails help you observe.&lt;br&gt;
Verifiable execution helps you prove.&lt;br&gt;
Why AI Systems Break Traditional Audit&amp;nbsp;Models&lt;br&gt;
AI systems introduce characteristics that traditional audit models were not designed for:&lt;br&gt;
dynamic prompt construction&lt;br&gt;
probabilistic model behavior&lt;br&gt;
multi-step workflows&lt;br&gt;
tool usage and external API calls&lt;br&gt;
distributed execution across services&lt;br&gt;
evolving context signals during runtime&lt;/p&gt;

&lt;p&gt;This makes execution harder to reconstruct after the fact.&lt;br&gt;
Even if every component logs its activity, the full execution may not exist as a single, verifiable record.&lt;br&gt;
Tamper-Evident Records and Attestation&lt;br&gt;
Verifiable execution relies on stronger primitives than logs.&lt;br&gt;
Tamper-Evident Records&lt;br&gt;
Execution data is cryptographically bound so that any modification breaks the record.&lt;br&gt;
This ensures:&lt;br&gt;
integrity can be validated&lt;br&gt;
changes cannot be hidden&lt;br&gt;
records remain trustworthy over time&lt;/p&gt;

&lt;p&gt;Attestation&lt;br&gt;
Attestation adds an additional layer of trust.&lt;br&gt;
It allows a system to:&lt;br&gt;
sign an execution record&lt;br&gt;
prove that it originated from a specific environment&lt;br&gt;
enable third parties to validate authenticity&lt;/p&gt;

&lt;p&gt;Together, these mechanisms provide a foundation for execution integrity.&lt;br&gt;
The Role of Certified Execution Records&amp;nbsp;(CERs)&lt;br&gt;
Certified Execution Records (CERs) provide a practical implementation of verifiable execution.&lt;br&gt;
A CER captures the full context of an AI execution in a structured, cryptographically verifiable format.&lt;br&gt;
It includes:&lt;br&gt;
inputs and parameters&lt;br&gt;
runtime fingerprint&lt;br&gt;
execution context&lt;br&gt;
output hash&lt;br&gt;
certificate identity&lt;/p&gt;

&lt;p&gt;Because these elements are bound together, CERs provide:&lt;br&gt;
tamper-evident records&lt;br&gt;
execution integrity&lt;br&gt;
auditability&lt;br&gt;
independent verification&lt;/p&gt;

&lt;p&gt;CERs turn execution into evidence.&lt;br&gt;
The Execution Verification Layer&lt;br&gt;
A new layer is emerging in AI infrastructure.&lt;br&gt;
You can think of the modern AI stack as:&lt;br&gt;
model providers&lt;br&gt;
orchestration frameworks&lt;br&gt;
observability systems&lt;br&gt;
governance tools&lt;br&gt;
execution verification infrastructure&lt;/p&gt;

&lt;p&gt;This execution verification layer is responsible for:&lt;br&gt;
producing verifiable execution artifacts&lt;br&gt;
enabling independent validation&lt;br&gt;
supporting long-term auditability&lt;br&gt;
ensuring execution integrity&lt;/p&gt;

&lt;p&gt;This is where concepts like CERs, attestation, and deterministic execution come together.&lt;br&gt;
Why This Matters&amp;nbsp;Now&lt;br&gt;
AI systems are being deployed in environments where:&lt;br&gt;
decisions have financial impact&lt;br&gt;
workflows affect compliance&lt;br&gt;
systems act autonomously&lt;br&gt;
outputs may be disputed&lt;/p&gt;

&lt;p&gt;In these environments, teams need more than logs.&lt;br&gt;
They need:&lt;br&gt;
auditability&lt;br&gt;
execution integrity&lt;br&gt;
verifiable execution&lt;/p&gt;

&lt;p&gt;They need to be able to say:&lt;br&gt;
This is what happened, and we can prove it.&lt;br&gt;
A Shift in Standards&lt;br&gt;
The standard for AI systems is evolving.&lt;br&gt;
From:&lt;br&gt;
"We can track what happened"&lt;br&gt;
to:&lt;br&gt;
"We can prove what happened"&lt;br&gt;
Audit trails are not going away.&lt;br&gt;
But they are no longer sufficient on their own.&lt;br&gt;
They need to be complemented by verifiable execution.&lt;br&gt;
Final Thought&lt;br&gt;
Audit trails provide visibility.&lt;br&gt;
Verifiable execution provides proof.&lt;br&gt;
As AI systems become more complex and more embedded in real-world decisions, proof becomes the more important requirement.&lt;br&gt;
The systems that can produce tamper-evident, verifiable records of AI execution will define the next generation of trustworthy infrastructure.&lt;br&gt;
Learn More&lt;br&gt;
&lt;a href="https://nexart.io" rel="noopener noreferrer"&gt;https://nexart.io&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.nexart.io" rel="noopener noreferrer"&gt;https://docs.nexart.io&lt;/a&gt;&lt;br&gt;
&lt;a href="https://verify.nexart.io" rel="noopener noreferrer"&gt;https://verify.nexart.io&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>infrastructure</category>
    </item>
    <item>
      <title>Execution Drift in AI Systems (and Why It Matters More Than You Think)</title>
      <dc:creator>Jb</dc:creator>
      <pubDate>Fri, 20 Mar 2026 09:45:31 +0000</pubDate>
      <link>https://dev.to/arrotu/execution-drift-in-ai-systems-and-why-it-matters-more-than-you-think-28of</link>
      <guid>https://dev.to/arrotu/execution-drift-in-ai-systems-and-why-it-matters-more-than-you-think-28of</guid>
      <description>&lt;p&gt;AI systems are often assumed to be stable.&lt;/p&gt;

&lt;p&gt;If the code does not change, the system should behave the same way.&lt;/p&gt;

&lt;p&gt;In practice, that assumption breaks down quickly.&lt;/p&gt;

&lt;p&gt;Two executions with the same inputs can produce different results.&lt;/p&gt;

&lt;p&gt;This is not always a bug.&lt;/p&gt;

&lt;p&gt;It is a property of modern AI systems.&lt;/p&gt;

&lt;p&gt;Definition: Execution Drift&lt;br&gt;
Execution drift is the phenomenon where identical inputs produce different outputs over time due to changes in environment, dependencies, models, or execution conditions.&lt;/p&gt;

&lt;p&gt;It is one of the most under-discussed challenges in AI systems today.&lt;/p&gt;

&lt;p&gt;Why Execution Drift Happens&lt;br&gt;
Even when a system appears unchanged, several factors can cause outputs to shift:&lt;/p&gt;

&lt;p&gt;dependency updates&lt;br&gt;
runtime version differences&lt;br&gt;
model updates or fine-tuning&lt;br&gt;
prompt or orchestration changes&lt;br&gt;
environment configuration differences&lt;br&gt;
non deterministic execution paths&lt;br&gt;
These changes are often subtle and may not be visible in logs.&lt;/p&gt;

&lt;p&gt;But they affect results.&lt;/p&gt;

&lt;p&gt;A Simple Example&lt;br&gt;
A workflow runs today and produces a result.&lt;/p&gt;

&lt;p&gt;The same workflow runs next week with the same input.&lt;/p&gt;

&lt;p&gt;The output is different.&lt;/p&gt;

&lt;p&gt;Nothing obvious changed.&lt;/p&gt;

&lt;p&gt;But under the surface:&lt;/p&gt;

&lt;p&gt;a model version updated&lt;br&gt;
a dependency changed&lt;br&gt;
a parameter default shifted&lt;br&gt;
a runtime environment evolved&lt;br&gt;
From the outside, the system looks the same.&lt;/p&gt;

&lt;p&gt;From the inside, it is not.&lt;/p&gt;

&lt;p&gt;Why This Becomes a Problem&lt;br&gt;
Execution drift makes systems harder to reason about.&lt;/p&gt;

&lt;p&gt;It impacts:&lt;/p&gt;

&lt;p&gt;reproducibility&lt;br&gt;
debugging&lt;br&gt;
auditing&lt;br&gt;
benchmarking&lt;br&gt;
compliance&lt;br&gt;
If a system cannot reliably reproduce or explain its outputs, it becomes harder to:&lt;/p&gt;

&lt;p&gt;defend decisions&lt;br&gt;
investigate issues&lt;br&gt;
certify behavior&lt;br&gt;
maintain long-term trust&lt;br&gt;
This is not just a technical issue.&lt;/p&gt;

&lt;p&gt;It becomes an operational and governance problem.&lt;/p&gt;

&lt;p&gt;Why Logs Do Not Solve Drift&lt;br&gt;
A common assumption is that logs can help reconstruct what happened.&lt;/p&gt;

&lt;p&gt;In reality, logs are not enough.&lt;/p&gt;

&lt;p&gt;Logs:&lt;/p&gt;

&lt;p&gt;do not capture full execution state&lt;br&gt;
are fragmented across services&lt;br&gt;
may miss environment details&lt;br&gt;
are difficult to correlate&lt;br&gt;
are not designed for verification&lt;br&gt;
Even with detailed logs, drift can remain invisible.&lt;/p&gt;

&lt;p&gt;You may see what happened.&lt;/p&gt;

&lt;p&gt;You cannot always prove why it happened.&lt;/p&gt;

&lt;p&gt;Drift vs Reproducibility&lt;br&gt;
Execution drift is closely related to reproducibility.&lt;/p&gt;

&lt;p&gt;But they are not the same.&lt;/p&gt;

&lt;p&gt;Reproducibility asks:&lt;/p&gt;

&lt;p&gt;Can we run this again and get the same result?&lt;/p&gt;

&lt;p&gt;Execution drift shows:&lt;/p&gt;

&lt;p&gt;We often cannot.&lt;/p&gt;

&lt;p&gt;And more importantly:&lt;/p&gt;

&lt;p&gt;We may not know why.&lt;/p&gt;

&lt;p&gt;The Role of Determinism&lt;br&gt;
One way to reduce drift is to introduce determinism.&lt;/p&gt;

&lt;p&gt;Learn about Medium’s values&lt;br&gt;
Deterministic systems aim to produce the same output given the same inputs and conditions.&lt;/p&gt;

&lt;p&gt;This can involve:&lt;/p&gt;

&lt;p&gt;fixed seeds&lt;br&gt;
controlled environments&lt;br&gt;
versioned dependencies&lt;br&gt;
stable execution pipelines&lt;br&gt;
However, full determinism is not always possible in AI systems.&lt;/p&gt;

&lt;p&gt;Especially when models are probabilistic.&lt;/p&gt;

&lt;p&gt;Why Determinism Alone Is Not Enough&lt;br&gt;
Even with deterministic practices, systems still need to answer a different question:&lt;/p&gt;

&lt;p&gt;What actually ran?&lt;/p&gt;

&lt;p&gt;Determinism helps with predictability.&lt;/p&gt;

&lt;p&gt;It does not guarantee that past executions can be verified later.&lt;/p&gt;

&lt;p&gt;This is where another layer becomes important.&lt;/p&gt;

&lt;p&gt;From Drift to Verifiable Execution&lt;br&gt;
Instead of trying to eliminate drift entirely, systems can focus on making execution visible and provable.&lt;/p&gt;

&lt;p&gt;This means capturing:&lt;/p&gt;

&lt;p&gt;inputs&lt;br&gt;
parameters&lt;br&gt;
runtime fingerprint&lt;br&gt;
execution context&lt;br&gt;
outputs&lt;br&gt;
as a single structured record.&lt;/p&gt;

&lt;p&gt;This record becomes an artifact of the execution.&lt;/p&gt;

&lt;p&gt;Certified Execution Records and Drift&lt;br&gt;
Certified Execution Records (CERs) help address execution drift by capturing what actually happened during a run.&lt;/p&gt;

&lt;p&gt;A CER allows teams to:&lt;/p&gt;

&lt;p&gt;verify a specific execution&lt;br&gt;
compare executions over time&lt;br&gt;
understand why outputs differ&lt;br&gt;
detect drift explicitly&lt;br&gt;
Even if outputs change, the system can show:&lt;/p&gt;

&lt;p&gt;this is what ran&lt;/p&gt;

&lt;p&gt;this is what changed&lt;/p&gt;

&lt;p&gt;That is a stronger position than relying on logs alone.&lt;/p&gt;

&lt;p&gt;Why This Matters Now&lt;br&gt;
Execution drift was manageable when systems were simple.&lt;/p&gt;

&lt;p&gt;Teams could rerun workflows, inspect logs, and move on.&lt;/p&gt;

&lt;p&gt;But AI systems are now:&lt;/p&gt;

&lt;p&gt;more complex&lt;br&gt;
more distributed&lt;br&gt;
more autonomous&lt;br&gt;
more integrated into critical workflows&lt;br&gt;
Drift is no longer an edge case.&lt;/p&gt;

&lt;p&gt;It is a default condition.&lt;/p&gt;

&lt;p&gt;A Shift in Thinking&lt;br&gt;
Instead of asking:&lt;/p&gt;

&lt;p&gt;“How do we prevent drift entirely?”&lt;/p&gt;

&lt;p&gt;A more practical question is:&lt;/p&gt;

&lt;p&gt;“How do we make drift visible, explainable, and verifiable?”&lt;/p&gt;

&lt;p&gt;That shift changes how systems are designed.&lt;/p&gt;

&lt;p&gt;It moves focus from:&lt;/p&gt;

&lt;p&gt;perfect stability&lt;/p&gt;

&lt;p&gt;to&lt;/p&gt;

&lt;p&gt;verifiable execution&lt;/p&gt;

&lt;p&gt;Final Thought&lt;br&gt;
Execution drift is not a bug.&lt;/p&gt;

&lt;p&gt;It is a property of modern AI systems.&lt;/p&gt;

&lt;p&gt;The real challenge is not eliminating drift.&lt;/p&gt;

&lt;p&gt;It is understanding it, capturing it, and proving what actually happened.&lt;/p&gt;

&lt;p&gt;Systems that can do that will be easier to:&lt;/p&gt;

&lt;p&gt;trust&lt;br&gt;
audit&lt;br&gt;
scale&lt;br&gt;
integrate into real-world environments&lt;br&gt;
And that is where verifiable execution becomes essential.&lt;/p&gt;

&lt;p&gt;Learn More&lt;br&gt;
&lt;a href="https://nexart.io" rel="noopener noreferrer"&gt;https://nexart.io&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.nexart.io" rel="noopener noreferrer"&gt;https://docs.nexart.io&lt;/a&gt;&lt;br&gt;
&lt;a href="https://verify.nexart.io" rel="noopener noreferrer"&gt;https://verify.nexart.io&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>infrastructure</category>
    </item>
  </channel>
</rss>
