<?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: Amaan Ahmad</title>
    <description>The latest articles on DEV Community by Amaan Ahmad (@iamaanahmad).</description>
    <link>https://dev.to/iamaanahmad</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%2F3481928%2F321cda85-7450-4c83-9d25-718e7280e9a2.png</url>
      <title>DEV Community: Amaan Ahmad</title>
      <link>https://dev.to/iamaanahmad</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/iamaanahmad"/>
    <language>en</language>
    <item>
      <title>I Built a Trustless Proof-and-Payout App on Solana (and What the Escrow Actually Looks Like)</title>
      <dc:creator>Amaan Ahmad</dc:creator>
      <pubDate>Tue, 10 Nov 2026 07:30:20 +0000</pubDate>
      <link>https://dev.to/iamaanahmad/i-built-a-trustless-proof-and-payout-app-on-solana-and-what-the-escrow-actually-looks-like-4io6</link>
      <guid>https://dev.to/iamaanahmad/i-built-a-trustless-proof-and-payout-app-on-solana-and-what-the-escrow-actually-looks-like-4io6</guid>
      <description>&lt;h2&gt;
  
  
  The problem in one sentence
&lt;/h2&gt;

&lt;p&gt;Someone pays a stranger to check something in the real world — is this booth open, did that poster go up, is the menu price really what it says — and both sides have to trust each other with no proof either way.&lt;/p&gt;

&lt;p&gt;I built ProofQuest to remove the trust from that exchange: the requester locks USDC in an on-chain escrow, a nearby worker captures camera + GPS + timestamp evidence, submits a signed proof packet, and the requester approves to release the reward. All from an Android phone. No browser, no custodial account.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/iamaanahmad/proofquest" rel="noopener noreferrer"&gt;https://github.com/iamaanahmad/proofquest&lt;/a&gt;&lt;br&gt;
Demo: &lt;a href="https://www.youtube.com/watch?v=bNrGX_kuYrs" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=bNrGX_kuYrs&lt;/a&gt;&lt;br&gt;
Submitted to the MLH Solana Hackathon, DeFi track, Nov 6–8, 2026. Devnet only, test USDC, not production.&lt;/p&gt;
&lt;h2&gt;
  
  
  How the loop works
&lt;/h2&gt;

&lt;p&gt;Two wallets, one phone, one trustless payout:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Creator&lt;/strong&gt; connects a wallet, creates a quest, sets the reward and claim window, funds and publishes. USDC moves into an on-chain vault.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Worker&lt;/strong&gt; connects a different wallet, sees nearby quests, claims one, and captures evidence in-app: camera photo, coarse GPS, timestamp.&lt;/li&gt;
&lt;li&gt;The worker submits. A canonical JSON manifest is SHA-256 hashed, the 32-byte digest is written on-chain, and the full manifest is stored in Appwrite.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Creator&lt;/strong&gt; reviews the proof — hash verified, evidence photo, metadata — and approves. The vault releases USDC to the worker.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No raw location or photo ever touches the chain. Only the manifest hash is public.&lt;/p&gt;
&lt;h2&gt;
  
  
  The escrow state machine
&lt;/h2&gt;

&lt;p&gt;The Anchor program (&lt;code&gt;DmSc562EUuh9yvu2AmEupLLC8wQrXZGVSCZL61EpugvZ&lt;/code&gt;, Solana devnet) is a small state machine:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Open  →  Claimed  →  Submitted  →  Approved
  ↓
Cancelled          (Refunded after submit_deadline passes)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instructions: &lt;code&gt;create_and_fund_quest&lt;/code&gt;, &lt;code&gt;claim_quest&lt;/code&gt;, &lt;code&gt;submit_evidence_hash&lt;/code&gt;, &lt;code&gt;approve_and_release&lt;/code&gt;, &lt;code&gt;cancel_unclaimed&lt;/code&gt;, &lt;code&gt;refund_expired&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The vault is an SPL token account owned by the quest PDA, so the money can only move on the program's rules: approve releases it to the worker, cancel or expiry refunds it to the creator. There is no admin key that can grab it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The evidence manifest
&lt;/h2&gt;

&lt;p&gt;Every submission produces a canonical JSON manifest before hashing:&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="nl"&gt;"questAddress"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;      &lt;span class="s2"&gt;"..."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;"workerWallet"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;      &lt;span class="s2"&gt;"..."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;"captureTimestamp"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="mi"&gt;1234567890&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;"coarseLocation"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;"geohash"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"tutq"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nl"&gt;"accuracy"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;15.5&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;"nonce"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;             &lt;span class="s2"&gt;"uuid-v4"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;"mediaSha256"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;       &lt;span class="s2"&gt;"..."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;"storageObjectId"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;   &lt;span class="s2"&gt;"..."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nl"&gt;"appVersion"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;        &lt;span class="s2"&gt;"1.0"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Keys are sorted, UTF-8 encoded, SHA-256 hashed. The raw photo and exact coordinates stay in private Appwrite storage. That split is the whole design: verifiable on-chain, private off-chain.&lt;/p&gt;

&lt;h2&gt;
  
  
  The stack, and why each piece is there
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mobile:&lt;/strong&gt; React Native 0.87, TypeScript, Hermes. One codebase, Android-first.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wallet:&lt;/strong&gt; Solana Mobile Wallet Adapter with Phantom. The phone is the signer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chain:&lt;/strong&gt; Anchor 0.32, SPL Token, Solana devnet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RPC:&lt;/strong&gt; Helius devnet, for reliable broadcast and confirmation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Appwrite (self-hosted) — quest discovery cache and private evidence storage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Camera:&lt;/strong&gt; react-native-vision-camera v5.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;State:&lt;/strong&gt; Zustand.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Appwrite is deliberately a cache, not the source of truth. If it goes down, the chain still knows who is owed what. If the chain is slow, the app still feels fast.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three quest templates, because "verify anything" is too vague
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Is this booth open?&lt;/strong&gt; — photo of the entrance showing open/closed status.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Did this poster go up?&lt;/strong&gt; — photo of the poster in the specified location.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verify today's menu price&lt;/strong&gt; — photo of the menu board showing item + price.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom&lt;/strong&gt; — open-ended evidence requirement.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Templates mattered more than I expected. A worker needs to know exactly what counts as proof before they walk over, and a requester needs to know exactly what they will get back.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is honest about the limits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Devnet only, test USDC. Not production ready.&lt;/li&gt;
&lt;li&gt;Phantom shows "Unknown Program" — expected for an unregistered devnet program.&lt;/li&gt;
&lt;li&gt;The QR challenge field is in the manifest schema and shown in Review, but in-app QR capture is not implemented yet.&lt;/li&gt;
&lt;li&gt;No push notifications — status updates are in-app only.&lt;/li&gt;
&lt;li&gt;The repo was started Sep 23, 2026 and polished through the hackathon weekend, not built from zero in two days.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I would rather ship a narrow loop that actually works than a broad one that demos well and breaks on the second tap.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I would build next
&lt;/h2&gt;

&lt;p&gt;Dispute handling with a time-boxed challenge window, a reputation score tied to wallet history instead of usernames, and a web review view so a requester does not need the app to approve. Mainnet is a later conversation, after a real audit.&lt;/p&gt;

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

&lt;p&gt;The APK is in the repo releases (v1.0.1, Nov 8, 2026). You need Android 10+, Phantom installed, and devnet SOL for fees. Setup is in the README: clone, set up the Appwrite schema, mint test USDC, run it.&lt;/p&gt;

&lt;p&gt;If you have built anything with Solana escrows or Mobile Wallet Adapter, I would genuinely like to hear what broke for you. What is the part of "trustless" that you still do not trust?&lt;/p&gt;

</description>
      <category>solana</category>
      <category>web3</category>
      <category>reactnative</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>Building KiroVerse: Where AI Mentorship Meets Blockchain Skill Verification</title>
      <dc:creator>Amaan Ahmad</dc:creator>
      <pubDate>Tue, 09 Sep 2025 11:05:46 +0000</pubDate>
      <link>https://dev.to/iamaanahmad/building-kiroverse-where-ai-mentorship-meets-blockchain-skill-verification-2610</link>
      <guid>https://dev.to/iamaanahmad/building-kiroverse-where-ai-mentorship-meets-blockchain-skill-verification-2610</guid>
      <description>&lt;p&gt;In today’s fast-evolving tech landscape, learning to code and proving your skills are critical yet challenging hurdles for developers. While many platforms offer generic feedback or easily forged certificates, the need for personalized mentorship and unfakeable, verifiable credentials has never been greater.&lt;/p&gt;

&lt;p&gt;This is the inspiration behind KiroVerse, an AI-powered, interactive coding dojo that combines Socratic AI mentorship with real NFT skill badges minted on the Ethereum Sepolia testnet—all built with the revolutionary Kiro AI development platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem: Learning Alone Without Proof
&lt;/h2&gt;

&lt;p&gt;Most developers struggle with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Certificates that can be faked or misrepresented&lt;/li&gt;
&lt;li&gt;Learning in isolation, without mentorship or tailored feedback&lt;/li&gt;
&lt;li&gt;Lack of reliable, portable proof of actual coding skills&lt;/li&gt;
&lt;li&gt;Employers, too, face challenges verifying candidate abilities beyond résumés or generic tests.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Our Solution: Spec-Driven AI + Web3 Credentials
&lt;/h2&gt;

&lt;p&gt;We built KiroVerse to solve these problems head-on by leveraging Kiro’s spec-driven development approach combined with powerful multi-agent AI flows and blockchain credentials.&lt;/p&gt;

&lt;p&gt;AI Socratic Mentorship: Instead of just giving answers, Kiro guides users through intelligent, context-aware feedback and interactive chat—teaching developers how to think, not just what to do.&lt;/p&gt;

&lt;p&gt;Dynamic Skill Recognition: AI analyzes submitted code in real-time, identifying granular programming skills like “JavaScript Promises” or “Error Handling” with true understanding.&lt;/p&gt;

&lt;p&gt;Unique AI-Generated Badge Art: Multimodal AI creates one-of-a-kind, visually striking badge icons for each skill, elevating achievement recognition beyond static images.&lt;/p&gt;

&lt;p&gt;Blockchain NFTs: Skill badges are minted as real NFTs on Ethereum Sepolia, providing unforgeable, publicly verifiable credentials that developers can showcase and employers can trust.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Kiro Enabled Us to Build This
&lt;/h2&gt;

&lt;p&gt;Our development process embraced Kiro’s full spec-driven paradigm. Every feature started with clear requirements, design documents, and modular tasks stored in a .kiro directory—available to users and contributors for total transparency.&lt;/p&gt;

&lt;p&gt;The real magic lies in agent hooks orchestrating complex AI workflows: skill analysis triggers badge art generation, which triggers blockchain minting and profile updating. This orchestration, powered by Google Genkit and Gemini 2.0 Flash AI models, streamlined implementation and created an elegant, maintainable codebase.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenges and Learnings
&lt;/h2&gt;

&lt;p&gt;Building KiroVerse meant overcoming:&lt;/p&gt;

&lt;p&gt;Ensuring reliable blockchain interactions during live demos, achieved by a hybrid demo/production minting mode.&lt;/p&gt;

&lt;p&gt;Architecting fallback logic for AI timeouts and service disruptions without breaking user experience.&lt;/p&gt;

&lt;p&gt;Designing an intuitive UI that balances powerful AI tools, blockchain transparency, and learning simplicity.&lt;/p&gt;

&lt;p&gt;Prioritizing accessibility for all developers.&lt;/p&gt;

&lt;p&gt;We learned that spec-driven AI development not only accelerates coding but fosters educational transparency. Having users see how AI builds the software enhances trust and learning depth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-World Impact
&lt;/h2&gt;

&lt;p&gt;KiroVerse is more than a demo; it’s a scalable platform transforming how developers learn and prove skills at a professional level. With verifiable NFT badges, mentoring powered by AI, and transparent dev processes, KiroVerse empowers:&lt;/p&gt;

&lt;p&gt;Developers seeking credible, portable skill proof to advance careers&lt;/p&gt;

&lt;p&gt;Hiring managers needing reliable verification of technical abilities&lt;/p&gt;

&lt;p&gt;Educational institutions embracing AI-enhanced learning and blockchain certification&lt;/p&gt;

&lt;h2&gt;
  
  
  Join Us on This Journey
&lt;/h2&gt;

&lt;p&gt;We entered the Code with Kiro Hackathon to push the boundaries of AI-assisted software development. Powered by Kiro, KiroVerse exemplifies how cutting-edge tools can create real value by combining mentorship, credentialing, and transparency.&lt;/p&gt;

&lt;p&gt;Try it today and see how your coding skills can become verifiable credentials with lifelong value.&lt;/p&gt;

&lt;p&gt;🔗 Try &lt;a href="https://kiro-verse.appwrite.network/" rel="noopener noreferrer"&gt;KiroVerse Now&lt;/a&gt;&lt;br&gt;
📖 Check the &lt;a href="https://github.com/iamaanahmad/kiro-verse" rel="noopener noreferrer"&gt;GitHub Repo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We welcome feedback, contributions, and collaborations to help shape the future of developer education together.&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>agentaichallenge</category>
      <category>aws</category>
      <category>web3</category>
    </item>
  </channel>
</rss>
