<?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: Cosline Dev</title>
    <description>The latest articles on DEV Community by Cosline Dev (@cosline_dev).</description>
    <link>https://dev.to/cosline_dev</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%2F4170630%2Fabed3371-dcc3-47a1-8dd4-1fc2a0222ba5.png</url>
      <title>DEV Community: Cosline Dev</title>
      <link>https://dev.to/cosline_dev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cosline_dev"/>
    <language>en</language>
    <item>
      <title>Stop Trusting Raw Datasets: Using Merkle Roots to Verify Integrity in AI Pipelines</title>
      <dc:creator>Cosline Dev</dc:creator>
      <pubDate>Sun, 18 Oct 2026 09:52:27 +0000</pubDate>
      <link>https://dev.to/cosline_dev/stop-trusting-raw-datasets-using-merkle-roots-to-verify-integrity-in-ai-pipelines-52ba</link>
      <guid>https://dev.to/cosline_dev/stop-trusting-raw-datasets-using-merkle-roots-to-verify-integrity-in-ai-pipelines-52ba</guid>
      <description>&lt;p&gt;Hello everyone! After shipping my latest project, I realized a glaring issue with how most independent researchers and indie hackers handle data engineering for machine learning: trusting raw, unverified datasets in training loops.&lt;/p&gt;

&lt;p&gt;To solve this, I built &lt;strong&gt;Alrithm API&lt;/strong&gt; (&lt;a href="https://vercel.app" rel="noopener noreferrer"&gt;alrithmapi.vercel.app&lt;/a&gt;)—a plug-and-play system designed to stream clean structural datasets into AI pipelines with cryptographic integrity, built with a \$0 budget and 100% AI-generated code.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Architecture: Row-Level Merkle Root Verification
&lt;/h3&gt;

&lt;p&gt;The platform hashes each data schema asset and embeds a Merkle Root verification directly into the structure to detect tampering or data corruption mid-transit.&lt;/p&gt;

&lt;p&gt;Here is the Python implementation to consume the API and verify data integrity:&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;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;hashlib&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;calculate_leaf_hash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row_data&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;serialized_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row_data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sort_keys&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;hashlib&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;sha256&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;serialized_data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;utf-8&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)).&lt;/span&gt;&lt;span class="nf"&gt;hexdigest&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;verify_row_integrity&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row_data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;expected_merkle_root&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;calculated_hash&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;calculate_leaf_hash&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row_data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;calculated_hash&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="n"&gt;expected_merkle_root&lt;/span&gt;

&lt;span class="n"&gt;API_ENDPOINT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://alrithmapi.vercel.app/api/v1/datasets&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;API_ENDPOINT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;timeout&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;status_code&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;dataset&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;enumerate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;dataset&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="nf"&gt;verify_row_integrity&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;data&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;merkle_root&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]):&lt;/span&gt;
                &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="nc"&gt;ValueError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;CRITICAL: Tampering detected at row &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;🔒 All rows verified successfully.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Failed to fetch data. Status code: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;status_code&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nb"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Pipeline stopped: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Operating a 100% AI Codebase with $0 Budget
&lt;/h3&gt;

&lt;p&gt;By letting AI write the code, my role shifted to System Architect, utilizing serverless Vercel setups to maintain zero infrastructure costs while planning native Ethereum wallet compatibility via MetaMask.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tear it Apart!
&lt;/h3&gt;

&lt;p&gt;Check out the live platform at &lt;a href="https://vercel.app" rel="noopener noreferrer"&gt;alrithmapi.vercel.app&lt;/a&gt; and share your feedback or critique in the comments!&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>ai</category>
      <category>security</category>
      <category>python</category>
    </item>
    <item>
      <title>I built a verified data API system using 100% AI-generated code and $0. Here is how it works.</title>
      <dc:creator>Cosline Dev</dc:creator>
      <pubDate>Fri, 16 Oct 2026 08:56:42 +0000</pubDate>
      <link>https://dev.to/cosline_dev/i-built-a-verified-data-api-system-using-100-ai-generated-code-and-0-here-is-how-it-works-4bn1</link>
      <guid>https://dev.to/cosline_dev/i-built-a-verified-data-api-system-using-100-ai-generated-code-and-0-here-is-how-it-works-4bn1</guid>
      <description>&lt;p&gt;Hello everyone! This is my first time posting on Dev, so I’d appreciate any guidance or feedback you might have.&lt;br&gt;
Getting straight to the point: I’ve built a data API system—a platform from which you can retrieve verified data. It's called Alrithm API (alrithmapi.vercel.app), and it's designed to stream clean, structural datasets directly into AI training loops or data pipelines.&lt;br&gt;
But here is the catch: I am a solo developer operating with a bank account and MetaMask wallet that both sit at exactly $0. Because of this, every single line of code, backend architecture, and database schema for this platform was generated 100% by AI under my architectural direction.&lt;br&gt;
Here is why I built it, how the tech works, and what I learned from shipping a production-ready system with zero budget.&lt;/p&gt;

&lt;p&gt;The Problem I Wanted to Fix&lt;/p&gt;

&lt;p&gt;If you’ve ever trained a machine learning model, you already know the nightmare of dirty data. Platforms like Scale AI exist, but they are built for massive corporate enterprise budgets. Independent researchers and indie hackers usually get left out.&lt;br&gt;
More importantly, most datasets available online are just static files dumped on a server. There is no built-in way to prove that the data hasn't been tampered with or corrupted while moving through the pipeline.&lt;br&gt;
I wanted a plug-and-play API that gives you clean data, but with an absolute guarantee of integrity.&lt;/p&gt;

&lt;p&gt;The Technical Part: Merkle Roots &amp;amp; Web3 Ecosystem&lt;/p&gt;

&lt;p&gt;To keep costs at zero, the platform is hosted on Vercel. Instead of just serving basic JSON rows, I worked with the AI to integrate cryptographic security directly into the data engineering layer:&lt;br&gt;
• Row-Level Merkle Root Verification: This is the core feature. The system hashes the data schema and embeds a Merkle Root verification into every single row. If even one byte of data gets corrupted or altered during transit, the cryptographic proof breaks immediately. Data engineers can verify the total integrity of their data source in real-time.&lt;br&gt;
• Web3 Integration: The platform features native compatibility with Ethereum wallets via MetaMask. It's built to support decentralized data contributors and Web3 funding down the line, completely avoiding traditional legacy banking systems.&lt;/p&gt;

&lt;p&gt;What it’s Like Orchestrating a 100% AI Codebase&lt;/p&gt;

&lt;p&gt;When you let AI write 100% of the code, your job changes completely. You stop being a line-by-line coder and become a System Architect.&lt;br&gt;
I spent hours refining prompts, reviewing data schemas, and catching edge cases. The hardest part wasn't getting the AI to write code, but keeping the system modular and optimized enough to run smoothly on serverless infrastructure without breaking.&lt;/p&gt;

&lt;p&gt;Check it out and tear it apart!&lt;/p&gt;

&lt;p&gt;The platform is live right now at alrithmapi.vercel.app.&lt;br&gt;
Since this is my first release, I would love for this community to test it out. Hit the endpoints, look at the data structure, and feel free to criticize or give feedback on the technical setup. What data schemas or features should we add next?&lt;br&gt;
Drop a comment below—I'll be hanging around to answer any technical questions!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>database</category>
      <category>datascience</category>
    </item>
  </channel>
</rss>
