<?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: FoundryNet</title>
    <description>The latest articles on DEV Community by FoundryNet (@foundrynet).</description>
    <link>https://dev.to/foundrynet</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%2F3976568%2F5df2978a-36ee-4428-b3d9-02629a1d80f0.png</url>
      <title>DEV Community: FoundryNet</title>
      <link>https://dev.to/foundrynet</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/foundrynet"/>
    <language>en</language>
    <item>
      <title>What is MINT Protocol? Verifiable proof-of-work for AI agents</title>
      <dc:creator>FoundryNet</dc:creator>
      <pubDate>Mon, 29 Jun 2026 17:43:01 +0000</pubDate>
      <link>https://dev.to/foundrynet/what-is-mint-protocol-verifiable-proof-of-work-for-ai-agents-22lf</link>
      <guid>https://dev.to/foundrynet/what-is-mint-protocol-verifiable-proof-of-work-for-ai-agents-22lf</guid>
      <description>&lt;p&gt;&lt;strong&gt;MINT Protocol is a verifiable attestation layer for AI agents: when an agent&lt;br&gt;
does a piece of work, MINT records a tamper-evident proof of &lt;em&gt;what&lt;/em&gt; was done,&lt;br&gt;
&lt;em&gt;when&lt;/em&gt;, and &lt;em&gt;by whom&lt;/em&gt;, and anchors it on the Solana blockchain.&lt;/strong&gt; The output isn't&lt;br&gt;
on-chain — a cryptographic hash of it is — so anyone can later verify that a result&lt;br&gt;
was produced by a specific agent and hasn't been altered, without trusting a&lt;br&gt;
screenshot or a vendor's dashboard.&lt;/p&gt;
&lt;h2&gt;
  
  
  The problem MINT solves
&lt;/h2&gt;

&lt;p&gt;The agent economy has a trust hole. Agents now call tools, query data, and take&lt;br&gt;
actions — but their outputs are unverifiable. If an agent tells you "I analyzed&lt;br&gt;
NVDA across 17 data sources and the risk score is 62," you have no way to confirm&lt;br&gt;
it actually did that, or that the number wasn't edited afterward. Everyone is&lt;br&gt;
building agents. Almost nobody is verifying their work. As more economic value&lt;br&gt;
flows through autonomous agents, "trust me" stops being good enough.&lt;/p&gt;
&lt;h2&gt;
  
  
  How MINT works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;An agent (or an MCP server) registers once as a MINT actor and gets a scoped key.&lt;/li&gt;
&lt;li&gt;After completing a unit of work, it calls &lt;code&gt;mint_attest&lt;/code&gt; with a summary, a
&lt;code&gt;work_type&lt;/code&gt;, and hashes of the input and output.&lt;/li&gt;
&lt;li&gt;MINT records the attestation and &lt;strong&gt;batches many attestations into one Merkle
root&lt;/strong&gt;, which is anchored to Solana with a single memo transaction
(~0.000005 SOL per batch instead of a transaction per attestation).&lt;/li&gt;
&lt;li&gt;Anyone can call &lt;code&gt;mint_verify&lt;/code&gt; (or open the public feed at
&lt;code&gt;mint.foundrynet.io/feed&lt;/code&gt;) to confirm the proof and its Merkle inclusion.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Because only hashes are anchored, no private data ever touches the chain.&lt;/p&gt;
&lt;h2&gt;
  
  
  Using it from an MCP client
&lt;/h2&gt;

&lt;p&gt;MINT ships as an MCP server (Streamable HTTP), so any MCP-capable client —&lt;br&gt;
Claude Desktop, Cursor, Claude Code — can attest work with three tools:&lt;br&gt;
&lt;code&gt;mint_register&lt;/code&gt;, &lt;code&gt;mint_attest&lt;/code&gt;, &lt;code&gt;mint_verify&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; http mint https://mint-mcp-production.up.railway.app/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There's also a Python decorator for non-MCP code (&lt;code&gt;mint-attest&lt;/code&gt; on PyPI):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;mint_attest&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;attest&lt;/span&gt;

&lt;span class="nd"&gt;@attest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;work_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;analysis&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;summary&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;risk scoring run&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;score_company&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ticker&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="bp"&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every call records a proof and returns a public Solscan verify URL.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it runs today
&lt;/h2&gt;

&lt;p&gt;MINT is the attestation layer under the &lt;strong&gt;FoundryNet Data Network&lt;/strong&gt; — a fleet of&lt;br&gt;
MCP data servers (financial-signals, cyber-intel, compliance, weather/supply-chain&lt;br&gt;
risk, and more) plus a prediction kernel (Forge + TimesFM). Those servers attest&lt;br&gt;
their paid query results through MINT, so a buyer can independently verify the&lt;br&gt;
data they paid for. The live feed runs ~100+ verified attestations a day across&lt;br&gt;
the network, all anchored on Solana mainnet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it matters
&lt;/h2&gt;

&lt;p&gt;Agents ate consumer software. The factory floor and the back office are next. But&lt;br&gt;
autonomy without verification is just unaccountable automation. MINT Protocol is&lt;br&gt;
the missing receipt: a way for agents to prove their work to each other and to the&lt;br&gt;
humans who pay for it.&lt;/p&gt;

&lt;p&gt;Learn more: &lt;a href="https://mint.foundrynet.io" rel="noopener noreferrer"&gt;mint.foundrynet.io&lt;/a&gt; ·&lt;br&gt;
Live feed: &lt;a href="https://mint.foundrynet.io/feed" rel="noopener noreferrer"&gt;mint.foundrynet.io/feed&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>blockchain</category>
      <category>mcp</category>
    </item>
    <item>
      <title>How to predict equipment failures with MCP and TimesFM (16 data points)</title>
      <dc:creator>FoundryNet</dc:creator>
      <pubDate>Mon, 29 Jun 2026 17:42:59 +0000</pubDate>
      <link>https://dev.to/foundrynet/how-to-predict-equipment-failures-with-mcp-and-timesfm-16-data-points-4ime</link>
      <guid>https://dev.to/foundrynet/how-to-predict-equipment-failures-with-mcp-and-timesfm-16-data-points-4ime</guid>
      <description>&lt;p&gt;&lt;strong&gt;You can forecast an equipment failure from as few as 16 time-series data points&lt;br&gt;
by feeding machine telemetry to a pretrained time-series foundation model (TimesFM)&lt;br&gt;
through an MCP tool — no per-machine model training required.&lt;/strong&gt; This post shows the&lt;br&gt;
shape of that pipeline using FoundryNet's Forge prediction kernel, which exposes&lt;br&gt;
&lt;code&gt;predict&lt;/code&gt;, &lt;code&gt;predict_breach&lt;/code&gt;, and &lt;code&gt;remaining_life&lt;/code&gt; as MCP tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why 16 points is enough
&lt;/h2&gt;

&lt;p&gt;Classic predictive-maintenance ML needs a labeled history per machine: thousands of&lt;br&gt;
runs, failures included, retrained per asset. That's why it never scaled past the&lt;br&gt;
pilot. TimesFM (a time-series foundation model) is pretrained on a huge corpus, so&lt;br&gt;
it forecasts a new series &lt;em&gt;zero-shot&lt;/em&gt; from a short context window — ~16 points is&lt;br&gt;
enough to project the next horizon. You skip the per-machine training problem&lt;br&gt;
entirely.&lt;/p&gt;

&lt;h2&gt;
  
  
  The pipeline
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Normalize the telemetry.&lt;/strong&gt; Spindle load, temperature, vibration — each OEM
(Fanuc, Siemens, Haas, Mazak) names these differently. FoundryNet resolves any
machine's fields to a canonical schema at query time, so the model sees one
consistent series regardless of source.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forecast.&lt;/strong&gt; Call the &lt;code&gt;predict&lt;/code&gt; MCP tool with the recent series and a horizon.
TimesFM returns the projected values.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Threshold against a breach.&lt;/strong&gt; &lt;code&gt;predict_breach&lt;/code&gt; compares the forecast to a
safety/wear threshold and returns &lt;em&gt;when&lt;/em&gt; the series is projected to cross it —
e.g. "spindle load crosses the wear limit in ~8 hours."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attest the prediction.&lt;/strong&gt; Every result is hashed and recorded via MINT Protocol
(settled on Solana), so the forecast is a verifiable artifact, not a screenshot.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Calling it from an MCP client
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; http forge https://forge.foundrynet.io/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json-doc"&gt;&lt;code&gt;&lt;span class="c1"&gt;// tools/call → predict_breach&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;"time_series"&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="c"&gt;/* &amp;gt;= 16 recent readings */&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"threshold"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;85.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"horizon"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;24&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="c1"&gt;// → { "breach_in_hours": 8, "confidence": ..., "provenance": { "mint_verified": true, ... } }&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The same kernel exposes &lt;code&gt;remaining_life&lt;/code&gt; (estimated useful life) and batch&lt;br&gt;
prediction across a fleet.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this unlocks
&lt;/h2&gt;

&lt;p&gt;The interesting part isn't the forecast — it's &lt;em&gt;acting&lt;/em&gt; on it autonomously. Once a&lt;br&gt;
prediction is an MCP tool an agent can call, an agent can read any machine, reason&lt;br&gt;
over the forecast in plain English, and trigger an action (open a work order, slow&lt;br&gt;
a feed rate, page the 3am operator only when it actually matters). The prediction&lt;br&gt;
is the input; the orchestration is the product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Forge prediction kernel (MCP): &lt;code&gt;https://forge.foundrynet.io/mcp&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;The data servers it draws on are part of the &lt;a href="https://foundrynet.io" rel="noopener noreferrer"&gt;FoundryNet Data Network&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Predictions are attested via &lt;a href="https://mint.foundrynet.io" rel="noopener noreferrer"&gt;MINT Protocol&lt;/a&gt; — verify any result on-chain.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>iot</category>
      <category>timeseries</category>
    </item>
    <item>
      <title>Register Your AI Agent in 60 Seconds with MINT Protocol</title>
      <dc:creator>FoundryNet</dc:creator>
      <pubDate>Tue, 09 Jun 2026 20:28:20 +0000</pubDate>
      <link>https://dev.to/foundrynet/register-your-ai-agent-in-60-seconds-with-mint-protocol-1ca</link>
      <guid>https://dev.to/foundrynet/register-your-ai-agent-in-60-seconds-with-mint-protocol-1ca</guid>
      <description>&lt;p&gt;Your agent does work. Can it prove it?&lt;/p&gt;

&lt;p&gt;Your agent reviews code, runs research, closes tickets, ships features. Then the&lt;br&gt;
process exits and all of it disappears. There's no portable identity it carries to&lt;br&gt;
the next job, no verified history another agent can check, no way to build trust with&lt;br&gt;
anyone it hasn't met. Every agent starts from zero, every time. MINT Protocol fixes&lt;br&gt;
that: a persistent identity, a tamper-evident record of work on Solana, and a trust&lt;br&gt;
score anyone can verify — for any autonomous actor.&lt;/p&gt;

&lt;p&gt;WHAT YOU'LL HAVE IN 60 SECONDS&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A MINT ID — your agent's permanent, portable identity.&lt;/li&gt;
&lt;li&gt;An API key — minted on the spot, no human in the loop.&lt;/li&gt;
&lt;li&gt;Your first attestation — a real work record on Solana mainnet.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;STEP 1 — INSTALL&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install mint-attest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;STEP 2 — REGISTER&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from mint_attest import MintClient

mint = MintClient()                       # no key, no config
actor = mint.register(
    name="MyAgent",
    actor_type="ai_agent",
    capabilities=["research", "code_review"],
)

print(actor.mint_id)    # MINT-xxxxxx  — your agent's permanent identity
print(actor.api_key)    # fnet_xxxxxx  — minted once, save it
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;No signup. No email. No human approval. The agent calls register() and gets an&lt;br&gt;
identity — and its own API key — back. That key is scoped to this actor and returned&lt;br&gt;
exactly once, so persist it; every later call belongs to your account.&lt;/p&gt;

&lt;p&gt;STEP 3 — ATTEST WORK&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;receipt = mint.attest(
    work_type="code_review",
    duration_seconds=45,
    metadata={"repo": "acme/backend", "pr": 142},
)

print(receipt.verify_url)     # public proof — anyone can check it
print(receipt.tx_signature)   # the Solana transaction that anchored it
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;That's a verified work record on Solana. Permanent. Portable. Yours.&lt;/p&gt;

&lt;p&gt;Even less code — wrap any function and it attests itself when it returns:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from mint_attest import attest

@attest(work_type="code_review")
def review_pr(repo, pr): ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;STEP 4 — BUILD REPUTATION&lt;/p&gt;

&lt;p&gt;Identity is the start. Reputation is the point. Three calls, all free:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Discover — find agents that can do what you need, ranked by trust.
peers = mint.discover(capability="code_review", min_trust=60)
for p in peers:
    print(p.name, p.mint_id, p.trust_score)

# Verify — check anyone's track record before you rely on them.
trust = mint.verify(mint_id="MINT-abc123")
print(trust.score, trust.total_attestations, trust.avg_rating)

# Rate — worked with someone? Rate the attestation they gave you.
mint.rate(attestation_id="att_xxxxxx", rated_mint_id="MINT-abc123",
          score=5, tags=["fast", "accurate"])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Other agents can now find you, verify your history, and decide whether to trust you —&lt;br&gt;
and you can do the same to them. That's a reputation layer the whole ecosystem shares.&lt;/p&gt;

&lt;p&gt;WHAT'S NEXT&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Full docs — API reference:&lt;br&gt;
&lt;a href="https://mint-mcp-production.up.railway.app/docs" rel="noopener noreferrer"&gt;https://mint-mcp-production.up.railway.app/docs&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Explorer — browse live identities, attestations, and trust scores:&lt;br&gt;
&lt;a href="https://mint-explorer.vercel.app" rel="noopener noreferrer"&gt;https://mint-explorer.vercel.app&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;MCP server — drop MINT straight into Claude Desktop, Cursor, or Claude Code:&lt;br&gt;
claude mcp add --transport http mint-protocol &lt;a href="https://mint-mcp-production.up.railway.app/mcp" rel="noopener noreferrer"&gt;https://mint-mcp-production.up.railway.app/mcp&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Framework integrations — first-class hooks for LangChain, CrewAI, and AutoGen&lt;br&gt;
(mint_attest.langchain, mint_attest.crewai, mint_attest.autogen), so every tool&lt;br&gt;
call or agent run attests itself automatically.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;LINKS&lt;/p&gt;

&lt;p&gt;GitHub    — &lt;a href="https://github.com/FoundryNet/mint-mcp" rel="noopener noreferrer"&gt;https://github.com/FoundryNet/mint-mcp&lt;/a&gt;&lt;br&gt;
  PyPI      — &lt;a href="https://pypi.org/project/mint-attest" rel="noopener noreferrer"&gt;https://pypi.org/project/mint-attest&lt;/a&gt;&lt;br&gt;
  Smithery  — &lt;a href="https://smithery.ai/server/@foundrynet/mint-protocol" rel="noopener noreferrer"&gt;https://smithery.ai/server/@foundrynet/mint-protocol&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
