<?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: GUARDIANCHAIN-GC1</title>
    <description>The latest articles on DEV Community by GUARDIANCHAIN-GC1 (@guardianchain).</description>
    <link>https://dev.to/guardianchain</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3858313%2F2919e1a9-4f85-4bf8-8681-b47b28610455.png</url>
      <title>DEV Community: GUARDIANCHAIN-GC1</title>
      <link>https://dev.to/guardianchain</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/guardianchain"/>
    <language>en</language>
    <item>
      <title>Verify an AI Governance Claim Across Six Blockchains in Five Minutes (Without Trusting the Vendor)</title>
      <dc:creator>GUARDIANCHAIN-GC1</dc:creator>
      <pubDate>Fri, 17 Apr 2026 14:54:05 +0000</pubDate>
      <link>https://dev.to/guardianchain/verify-an-ai-governance-claim-across-six-blockchains-in-five-minutes-without-trusting-the-vendor-500n</link>
      <guid>https://dev.to/guardianchain/verify-an-ai-governance-claim-across-six-blockchains-in-five-minutes-without-trusting-the-vendor-500n</guid>
      <description>&lt;p&gt;Most infrastructure asks you to trust it. You send data to a vendor, the vendor promises to handle it correctly, and later, if something goes wrong, you rely on the vendor's word, the vendor's logs, and the vendor's willingness to cooperate with your audit.&lt;br&gt;
Forward verification inverts that. It is a property of infrastructure where any third party can check the vendor's claims independently, using only public data, without the vendor's cooperation, and without trusting the vendor at all. The vendor cannot lie, because the proof is not in the vendor's hands.&lt;br&gt;
This article is a walkthrough. By the end of it, you will have taken a real capsule ID from GuardianChain's production system, verified its claims across six blockchains yourself, and understood the mechanism well enough to explain it to a colleague. The verification takes about five minutes. Everything you need is public.&lt;br&gt;
What a capsule is&lt;br&gt;
A GuardianChain capsule is a signed, hashed record of something that happened. It contains metadata about an event, a cryptographic hash of that event's content, and signatures proving who created it. The content itself stays with you; only the hash goes into the capsule. This is the non-custodial property: GuardianChain never holds your data, only the proof that your data existed at a specific moment.&lt;br&gt;
Once a capsule is created, its hash is anchored into six independent blockchains: Base, Polygon, Ethereum, Optimism, Arbitrum, and Arweave. Anchoring means the hash is written into a transaction on each chain, so each chain now contains an immutable record that this specific capsule hash existed at this specific block height.&lt;br&gt;
The forward verification claim is simple. Given a capsule ID, anyone can independently confirm that the capsule's hash appears in a transaction on each of those six chains, at the block height the capsule claims, with a signature that matches the public key the capsule claims. No GuardianChain API call is required for the verification itself. The blockchains are the source of truth.&lt;br&gt;
The capsule we are going to verify&lt;br&gt;
We are going to verify capsule e1a9a038-9938-4c63-a883-43e0ed21dfc6. This capsule is a RUNNING_STATE_AUDIT, produced on April 17, 2026, documenting a twelve-hour window of operational activity in GuardianChain's production system. It was created, anchored, and made retrievable through the platform's normal pipeline. Nothing about it is special. It is a working example.&lt;br&gt;
Step 1: Retrieve the capsule metadata&lt;br&gt;
Fetch the capsule record from GuardianChain's public DC-1 endpoint:&lt;br&gt;
bashcurl &lt;a href="https://gc-1-production.up.railway.app/api/dc1/capsule/e1a9a038-9938-4c63-a883-43e0ed21dfc6" rel="noopener noreferrer"&gt;https://gc-1-production.up.railway.app/api/dc1/capsule/e1a9a038-9938-4c63-a883-43e0ed21dfc6&lt;/a&gt;&lt;br&gt;
You will get back a JSON object containing the capsule's hash, creation timestamp, anchor transaction hashes for each of the six chains, and the signing public key. Save this response. Everything that follows uses fields from it.&lt;br&gt;
The key insight: GuardianChain is only giving you the pointers. The actual proof lives on chains GuardianChain does not control.&lt;br&gt;
Step 2: Verify on chain one (Base)&lt;br&gt;
Take the base_tx_hash field from the response. Go to the Base block explorer:&lt;br&gt;
&lt;a href="https://basescan.org/tx/" rel="noopener noreferrer"&gt;https://basescan.org/tx/&lt;/a&gt;&lt;br&gt;
You will see the transaction on-chain. Look at the transaction's input data. Embedded in it is the capsule hash. Copy that hash. Confirm it matches the content_hash field in the capsule JSON you retrieved in Step 1.&lt;br&gt;
That is one chain verified. Base's operators do not know GuardianChain exists. Base simply records that at a specific block, at a specific timestamp, a specific hash was written into a transaction. The hash matches. The claim holds.&lt;br&gt;
Step 3: Repeat on the remaining five chains&lt;br&gt;
Do the same thing on each of the other five anchors:&lt;/p&gt;

&lt;p&gt;Polygon: &lt;a href="https://polygonscan.com/tx/" rel="noopener noreferrer"&gt;https://polygonscan.com/tx/&lt;/a&gt;&lt;br&gt;
Ethereum: &lt;a href="https://etherscan.io/tx/" rel="noopener noreferrer"&gt;https://etherscan.io/tx/&lt;/a&gt;&lt;br&gt;
Optimism: &lt;a href="https://optimistic.etherscan.io/tx/" rel="noopener noreferrer"&gt;https://optimistic.etherscan.io/tx/&lt;/a&gt;&lt;br&gt;
Arbitrum: &lt;a href="https://arbiscan.io/tx/" rel="noopener noreferrer"&gt;https://arbiscan.io/tx/&lt;/a&gt;&lt;br&gt;
Arweave: &lt;a href="https://viewblock.io/arweave/tx/" rel="noopener noreferrer"&gt;https://viewblock.io/arweave/tx/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each explorer is operated independently. Each chain is operated independently. The hashes all match. The timestamps all fall within the batch window you would expect for a capsule anchored through a Merkle-batched pipeline.&lt;br&gt;
Step 4: Verify the signature&lt;br&gt;
The capsule metadata includes a signature and a public key. Take the capsule's canonical serialized form (the JSON with fields in a defined order, specified in GuardianChain's public schema), compute its SHA-256 hash, and verify the signature against the public key using any standard Ed25519 library:&lt;br&gt;
javascriptconst nacl = require('tweetnacl');&lt;br&gt;
const verified = nacl.sign.detached.verify(&lt;br&gt;
  messageHash,&lt;br&gt;
  signatureBytes,&lt;br&gt;
  publicKeyBytes&lt;br&gt;
);&lt;br&gt;
console.log(verified); // true&lt;br&gt;
You now have end-to-end proof. The capsule was signed by the holder of a specific private key. The hash of the capsule appears on six independent blockchains. The blockchains were written to at times that predate this moment, meaning no one could have forged this record after the fact without also forging history on six chains simultaneously, which is economically and cryptographically infeasible.&lt;br&gt;
Why this matters&lt;br&gt;
You just verified a claim about an AI governance event without calling GuardianChain's API for anything except the pointer lookup, and even that lookup could be replaced with a local cache or a mirror. The verification itself ran against public blockchain data, using public explorers, using standard cryptographic libraries.&lt;br&gt;
This is what forward verification means as a property. It is not a claim the vendor makes about their own reliability. It is a mathematical structure that makes the vendor's reliability irrelevant. If GuardianChain disappeared tomorrow, every capsule ever created would remain verifiable forever, by anyone, using the same steps you just followed.&lt;br&gt;
For AI governance, this property matters because the alternative is trust. Regulators and auditors currently have to trust that vendor logs are accurate, that vendor timestamps are honest, and that vendor cooperation will be available when needed. Forward verification removes all three dependencies. A capsule either verifies, or it does not. The vendor's posture is not part of the answer.&lt;br&gt;
What to do next&lt;br&gt;
If you want to try this on a capsule you create yourself, the CLI is at npm install -g &lt;a class="mentioned-user" href="https://dev.to/guardianchain"&gt;@guardianchain&lt;/a&gt;/cap. Documentation and the public verification endpoint live at guardianchain.io. The MCP tool gc1_forward_verify does the above steps programmatically inside any MCP-capable LLM client.&lt;br&gt;
If you found this useful, the most valuable thing you can do is explain it to another developer. Forward verification only becomes the default expectation for AI governance infrastructure if enough people know it is possible.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>devops</category>
      <category>opensource</category>
    </item>
    <item>
      <title>How to Create Immutable Audit Trails for AI Agents</title>
      <dc:creator>GUARDIANCHAIN-GC1</dc:creator>
      <pubDate>Thu, 02 Apr 2026 20:52:33 +0000</pubDate>
      <link>https://dev.to/guardianchain/how-to-create-immutable-audit-trails-for-ai-agents-5boc</link>
      <guid>https://dev.to/guardianchain/how-to-create-immutable-audit-trails-for-ai-agents-5boc</guid>
      <description>&lt;p&gt;&lt;em&gt;Troy Anthony Cronin is the founder of GuardianChain, LLC and the architect of GC-1 — non-custodial cryptographic evidence infrastructure for AI accountability. 64,000+ governance capsules sealed, 328-day unbroken sovereign seal chain.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Your AI agent approved a $400K credit line at 2:14 AM. Three months later, the applicant defaults and the regulator calls. Can you prove exactly what the model evaluated, what rules it checked, and why it said yes?&lt;/p&gt;

&lt;p&gt;If your agent's audit trail lives in a database you control, the answer is: not really. Mutable logs are not evidence. They are assertions you can edit at any time.&lt;/p&gt;

&lt;p&gt;This article shows you how to build immutable audit trails for AI agents — trails that are anchored to public blockchains, independently verifiable by anyone, and cryptographically tamper-proof. No trust in the vendor required.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with Mutable Logs
&lt;/h2&gt;

&lt;p&gt;Most AI systems log decisions to a database or object store. This creates three problems regulators already understand:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Logs can be altered after the fact.&lt;/strong&gt; There is no way for an external party to confirm that what you show them today is what actually happened six months ago.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Log completeness is unverifiable.&lt;/strong&gt; If you deleted an embarrassing entry, no one can prove it was ever there. No one can prove it was not there, either.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Timestamps are self-asserted.&lt;/strong&gt; Your server clock is not an independent authority. You control it.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Blockchain anchoring solves all three. Once a hash is committed to a public chain, it cannot be edited, deleted, or backdated. The chain's block timestamp is independent of your infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture: Non-Custodial Evidence
&lt;/h2&gt;

&lt;p&gt;GC-1's approach is non-custodial. Your data never leaves your infrastructure. Only a SHA-256 hash is submitted. The hash is anchored to up to 6 blockchain networks (Base, Polygon, Ethereum, Optimism, Arbitrum, Arweave) and replicated across 5 cloud storage providers.&lt;/p&gt;

&lt;p&gt;This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GC-1 cannot read your data (it never receives it).&lt;/li&gt;
&lt;li&gt;GC-1 cannot alter your evidence (blockchain anchors are immutable).&lt;/li&gt;
&lt;li&gt;Anyone can verify your evidence (public blockchain, no account needed).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 1: Seal Agent Decisions
&lt;/h2&gt;

&lt;p&gt;Install the SDK:&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; @guardianchain-llc/gc1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Seal a governance decision:&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;GuardianChain&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="s1"&gt;@guardianchain-llc/gc1&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;gc1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;GuardianChain&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;GC1_API_KEY&lt;/span&gt;&lt;span class="o"&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;decisionData&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;agentId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;lending-agent-v3&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;applicantHash&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;gc1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;hash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;applicant-12345&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;CREDIT_APPROVED&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;400000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;modelVersion&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;gpt-4-turbo-2025-04&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;featuresUsed&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;income&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;employment_length&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;debt_ratio&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="na"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;toISOString&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;capsule&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;gc1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;seal&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;contentHash&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;gc1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;hash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;decisionData&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="na"&gt;anchorClass&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;INSTITUTIONAL_REGULATED&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;'Credit Decision - Applicant 12345',&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="na"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;AI_GOVERNANCE&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What just happened:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You hashed the decision data locally. The raw data never left your server.&lt;/li&gt;
&lt;li&gt;The hash was submitted to GC-1, which anchored it to Base L2 and Polygon.&lt;/li&gt;
&lt;li&gt;The hash was replicated to Cloudflare R2, AWS S3, and Backblaze B2.&lt;/li&gt;
&lt;li&gt;An Ed25519 certificate was issued and signed.&lt;/li&gt;
&lt;li&gt;The capsule was included in the next sovereign seal batch.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The result is a governance capsule with a unique ID, a verification URL, and a certificate PDF — all independently verifiable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Verify Evidence Independently
&lt;/h2&gt;

&lt;p&gt;Any party can verify a capsule without trusting GC-1. The SDK verify method checks the blockchain anchors directly:&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="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="nx"&gt;gc1&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="nx"&gt;capsule&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="nx"&gt;capsule_id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// CERTIFIED = anchored on blockchain, signature valid, hash confirmed&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For air-gapped or classified environments where no network call is acceptable, use the offline verifier:&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; &lt;span class="nt"&gt;-g&lt;/span&gt; @guardianchain-llc/gc1-verify

gc1-verify bundle.json
gc1-verify &lt;span class="nt"&gt;--hash&lt;/span&gt; &amp;lt;capsuleId&amp;gt; &amp;lt;contentHash&amp;gt; &amp;lt;anchorClass&amp;gt;
gc1-verify &lt;span class="nt"&gt;--cert&lt;/span&gt; certificate.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The offline verifier uses only Node.js built-in crypto. No GC-1 libraries, no network calls, no trust in any vendor. If the math checks out, the evidence is valid.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Link Decisions to Sessions
&lt;/h2&gt;

&lt;p&gt;Real agents do not make decisions in isolation. They operate in sessions — sequences of related actions. GC-1 links capsules to sessions so the full decision chain is reconstructable:&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;sessionStart&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;gc1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;seal&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;contentHash&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;gc1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;hash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;sessionId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;lending-review-2026-04-02&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;agentId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;lending-agent-v3&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;SESSION_START&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;toISOString&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
  &lt;span class="p"&gt;})),&lt;/span&gt;
  &lt;span class="na"&gt;anchorClass&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;INSTITUTIONAL_REGULATED&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;'Lending Review Session Start',&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="na"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;AI_GOVERNANCE&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="c1"&gt;// Agent performs analysis, checks rules, makes decision...&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;gc1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;seal&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;contentHash&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;gc1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;hash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;sessionId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;lending-review-2026-04-02&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;agentId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;lending-agent-v3&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;CREDIT_APPROVED&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;amount&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;400000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;ruleResults&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;ruleId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;FAIR_LENDING_001&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;result&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;PASS&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;ruleId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;DEBT_RATIO_001&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;result&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;PASS&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;detail&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;0.38 &amp;lt; 0.43&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;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;toISOString&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
  &lt;span class="p"&gt;})),&lt;/span&gt;
  &lt;span class="na"&gt;anchorClass&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;INSTITUTIONAL_REGULATED&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;'Credit Decision - Approved',&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="na"&gt;kind&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;AI_GOVERNANCE&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;history&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;gc1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sessionHistory&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;lending-review-2026-04-02&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;Each capsule in the session is independently anchored. If a regulator asks for the complete decision chain, you reconstruct it from the session history — every step is hash-linked and blockchain-proven.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Prove What Didn't Happen
&lt;/h2&gt;

&lt;p&gt;Most audit systems can only prove what did happen. GC-1 can prove what didn't happen.&lt;/p&gt;

&lt;p&gt;If your lending agent is required to check fair lending rules before every credit decision, the absence of a governance capsule for that check is itself evidence of a violation. GC-1 calls this &lt;strong&gt;Silent Witness&lt;/strong&gt; — an absence proof.&lt;/p&gt;

&lt;p&gt;And if your agent was presented with a prohibited action and refused to execute it, that refusal is sealed as a &lt;strong&gt;Proof of Restraint&lt;/strong&gt; capsule. This proves the governance system actively prevented harm, not just that harm didn't happen to occur.&lt;/p&gt;

&lt;p&gt;No competitor offers absence proofs or governed refusal evidence. Both are sealed using the same seal method shown above.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Not Just Use a Database with Checksums?
&lt;/h2&gt;

&lt;p&gt;You could hash your logs and store the hashes. But who verifies the hashes? You. That is the problem. Self-asserted integrity is not evidence. It is a claim.&lt;/p&gt;

&lt;p&gt;Blockchain anchoring moves the trust anchor outside your organization. The hash is committed to a public ledger that you do not control, that you cannot edit, and that anyone can read. That is the difference between a log and evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Means for Compliance
&lt;/h2&gt;

&lt;p&gt;The EU AI Act (Article 12) requires high-risk AI systems to maintain logs that enable tracing and auditing. The NIST AI RMF calls for documented AI governance with verifiable records. SEC and FINRA expect auditable decision trails for algorithmic trading and lending.&lt;/p&gt;

&lt;p&gt;None of these frameworks are satisfied by mutable database logs. All of them are satisfied by immutable, independently verifiable, cryptographically signed evidence trails.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&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; @guardianchain-llc/gc1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Three lines to provable governance:&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;GuardianChain&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="s1"&gt;@guardianchain-llc/gc1&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;gc1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;GuardianChain&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;GC1_API_KEY&lt;/span&gt;&lt;span class="o"&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;capsule&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;gc1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;seal&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;contentHash&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;gc1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;hash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;yourData&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;Public verification requires no API key and no account. Anyone can verify any capsule at any time.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Documentation: &lt;a href="https://guardianchain.io" rel="noopener noreferrer"&gt;guardianchain.io&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;SDK: &lt;a href="https://www.npmjs.com/package/@guardianchain-llc/gc1" rel="noopener noreferrer"&gt;@guardianchain-llc/gc1 on npm&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Offline Verifier: &lt;a href="https://www.npmjs.com/package/@guardianchain-llc/gc1-verify" rel="noopener noreferrer"&gt;@guardianchain-llc/gc1-verify on npm&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;GuardianChain, LLC is a Delaware company building non-custodial cryptographic evidence infrastructure for AI accountability. GC-1 proves what happened, what didn't happen, and what was actively prevented from happening — permanently, independently, and without storing any underlying content.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>security</category>
      <category>blockchain</category>
    </item>
  </channel>
</rss>
