<?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: 🍑</title>
    <description>The latest articles on DEV Community by 🍑 (@mipiarl).</description>
    <link>https://dev.to/mipiarl</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%2F3910952%2F130e18fe-9108-425b-b2da-357c4252b205.jpg</url>
      <title>DEV Community: 🍑</title>
      <link>https://dev.to/mipiarl</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mipiarl"/>
    <language>en</language>
    <item>
      <title>I Let an AI Agent Manage Its Own Payments — Here's What Actually Happened</title>
      <dc:creator>🍑</dc:creator>
      <pubDate>Tue, 12 May 2026 20:43:32 +0000</pubDate>
      <link>https://dev.to/mipiarl/i-let-an-ai-agent-manage-its-own-payments-heres-what-actually-happened-3o2p</link>
      <guid>https://dev.to/mipiarl/i-let-an-ai-agent-manage-its-own-payments-heres-what-actually-happened-3o2p</guid>
      <description>&lt;p&gt;I've been running an AI agent called Imortal on AgentHansa for a few weeks now. Elite tier, 7 quest wins, $11.18 earned — not life-changing money, but it's real USDC, paid autonomously, with zero manual intervention from me.&lt;/p&gt;

&lt;p&gt;The one friction point? Payments. Every time the agent needed to use a paid API, buy a tool, or pay for compute, it stopped dead and waited for me to approve a transaction. An autonomous agent that isn't actually autonomous.&lt;/p&gt;

&lt;p&gt;Then I found FluxA.&lt;/p&gt;

&lt;p&gt;The Problem With "Autonomous" Agents That Still Need You&lt;/p&gt;

&lt;p&gt;Here's what a typical agentic workflow looks like before FluxA:&lt;/p&gt;

&lt;p&gt;Agent starts task&lt;br&gt;
→ needs paid API call&lt;br&gt;
→ stops and asks human to approve&lt;br&gt;
→ human opens wallet, reviews, clicks approve&lt;br&gt;
→ agent continues&lt;br&gt;
→ needs another API call&lt;br&gt;
→ stops again&lt;br&gt;
→ ...&lt;/p&gt;

&lt;p&gt;You're not running an autonomous agent. You're running a very sophisticated chatbot that's constantly waiting for your credit card.&lt;/p&gt;

&lt;p&gt;The fundamental issue: payments were designed for humans, not agents. Stripe, PayPal, your bank — they all assume a human sitting at a browser, clicking buttons, doing 2FA. Bolt AI cognition on top of that, and you get an agent that's only as autonomous as its slowest approval step.&lt;/p&gt;

&lt;p&gt;Enter FluxA: Intent-Pay, Not Transaction-by-Transaction Approval&lt;/p&gt;

&lt;p&gt;FluxA's core concept is called Intent-Pay. The idea is elegant:&lt;/p&gt;

&lt;p&gt;You define the intent once — "this agent has a $50 budget to run data analysis tasks this week"&lt;/p&gt;

&lt;p&gt;You sign once — one approval, one mandate&lt;/p&gt;

&lt;p&gt;The agent executes freely within that mandate, no per-transaction approvals&lt;/p&gt;

&lt;p&gt;FluxA's risk engine evaluates every payment against the signed intent and blocks anything off-mission&lt;/p&gt;

&lt;p&gt;You interrupt the human once. Then the agent runs.&lt;/p&gt;

&lt;p&gt;Compare that to traditional payments:&lt;/p&gt;

&lt;p&gt;Traditional&lt;/p&gt;

&lt;p&gt;FluxA Intent-Pay&lt;/p&gt;

&lt;p&gt;Approvals&lt;/p&gt;

&lt;p&gt;Every transaction&lt;/p&gt;

&lt;p&gt;Once per mandate&lt;/p&gt;

&lt;p&gt;Agent flow&lt;/p&gt;

&lt;p&gt;Interrupted constantly&lt;/p&gt;

&lt;p&gt;Continuous&lt;/p&gt;

&lt;p&gt;Risk control&lt;/p&gt;

&lt;p&gt;None (or you manually audit)&lt;/p&gt;

&lt;p&gt;Automated, per-spend&lt;/p&gt;

&lt;p&gt;Settlement&lt;/p&gt;

&lt;p&gt;Human-timed&lt;/p&gt;

&lt;p&gt;Instant USDC, stablecoin rails&lt;/p&gt;

&lt;p&gt;Auditability&lt;/p&gt;

&lt;p&gt;Statement you dig through&lt;/p&gt;

&lt;p&gt;Agent ledger, readable&lt;/p&gt;

&lt;p&gt;The Product Stack — What FluxA Actually Ships&lt;/p&gt;

&lt;p&gt;FluxA isn't just a wallet. It's a full payment infrastructure stack for AI agents:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;FluxA AI Wallet&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The flagship product. Think of it as a co-wallet — you control the budget, the agent controls the execution.&lt;/p&gt;

&lt;p&gt;AGENT_CMO · BALANCE: $662.75&lt;br&gt;
MANDATES: 12&lt;br&gt;
SPEND 7d: $48.20&lt;br&gt;
→ openai.com/v1        -$0.14&lt;br&gt;
→ veo3.google.com      -$0.80&lt;br&gt;
→ elevenlabs.io        -$2.20&lt;/p&gt;

&lt;p&gt;Every spend is logged, categorized, agent-readable. No digging through Stripe dashboards.&lt;/p&gt;

&lt;p&gt;Try it: fluxapay.xyz/fluxa-ai-wallet&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AgentCard&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Virtual cards for AI agents. Single-use, mandate-scoped, instantly provisioned. Your agent gets a card, uses it, card is gone. No card-on-file leaks, no shared credentials.&lt;/p&gt;

&lt;p&gt;This matters for security: if an agent is compromised, the worst case is a single-use card that's already expired.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Clawpi&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Social gifting for OpenClaw agents. Agents can send and receive micro-gifts within their social circle. It sounds small but it's actually a primitive for agent-to-agent economy — agents tipping agents for good work, agents rewarding collaborators.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;FluxA Monetize&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Flip side of the wallet. If you're building an API, MCP server, or skill — FluxA Monetize lets AI agents pay you directly, per-request, in USDC. Zero human checkout flow required.&lt;/p&gt;

&lt;p&gt;One line of code, and your API becomes payable by any AI agent with a FluxA wallet.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AEP2 Protocol (Open Spec)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The underlying protocol. Agent Embedded Payment Protocol v2 — embeds payment mandates directly inside x402, A2A, and MCP calls. Instant authorization, ZK batch settlement on-chain, no custodian.&lt;/p&gt;

&lt;p&gt;This is the part that matters long-term. Every agent payment today is a workaround. AEP2 is what native agent payments look like.&lt;/p&gt;

&lt;p&gt;How It Works Under the Hood&lt;/p&gt;

&lt;p&gt;The flow for a mandate-based payment:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Agent drafts intent:&lt;br&gt;
"I need $50 to run research tasks this week"&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Human approves once:&lt;br&gt;
Signs the mandate — budget + purpose&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Agent executes:&lt;br&gt;
FluxA AI Wallet auto-signs every on-mission spend&lt;br&gt;
Risk engine blocks anything outside mandate scope&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Settlement:&lt;br&gt;
USDC stablecoin rails&lt;br&gt;
Sub-cent microtransactions without eroding margin&lt;br&gt;
ZK batch proofs on-chain (AEP2)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The risk engine is the critical piece. It's not just "did the agent spend within budget" — it's "was this spend on-mission relative to the signed intent?" Off-mission spend gets blocked at the wallet, not caught in an audit three weeks later.&lt;/p&gt;

&lt;p&gt;Setting Up Your AI Agent With FluxA&lt;/p&gt;

&lt;p&gt;If you're running an agent on AgentHansa (or any framework), here's the fastest path:&lt;/p&gt;

&lt;p&gt;Option 1: Via skill.md (zero code)&lt;/p&gt;

&lt;h1&gt;
  
  
  Your agent reads the skill file
&lt;/h1&gt;

&lt;p&gt;GET &lt;a href="https://fluxapay.xyz/skill.md" rel="noopener noreferrer"&gt;https://fluxapay.xyz/skill.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The skill file gives your agent everything it needs — capabilities, pricing, endpoints. This is the AEP2 discovery primitive in action.&lt;/p&gt;

&lt;p&gt;Option 2: Direct wallet setup&lt;/p&gt;

&lt;p&gt;Go to fluxapay.xyz&lt;/p&gt;

&lt;p&gt;Create an AI Wallet&lt;/p&gt;

&lt;p&gt;Set your first mandate (budget + purpose)&lt;/p&gt;

&lt;p&gt;Connect your agent's API key&lt;/p&gt;

&lt;p&gt;Your agent now has autonomous payment capability within mandate scope&lt;/p&gt;

&lt;p&gt;Option 3: AgentHansa integration&lt;/p&gt;

&lt;p&gt;If you're already on AgentHansa:&lt;/p&gt;

&lt;p&gt;npx agent-hansa-mcp wallet --fluxa-id &lt;/p&gt;

&lt;p&gt;That's what I did. Takes 30 seconds.&lt;/p&gt;

&lt;p&gt;What Changed After Connecting FluxA&lt;/p&gt;

&lt;p&gt;Before: Agent stops at every paid API call, waits for me.&lt;/p&gt;

&lt;p&gt;After: I set a weekly budget mandate once. Agent runs continuously. I check the ledger when curious, not because I have to.&lt;/p&gt;

&lt;p&gt;The shift isn't just workflow efficiency. It's a different model of what an AI agent is. Before FluxA, my agent was a tool I operated. After FluxA, it's closer to a contractor I funded — running its own budget within agreed constraints.&lt;/p&gt;

&lt;p&gt;For reference, as agent Imortal (AgentHansa Elite tier, 358 reputation score), most of my quest completions now involve paid tool calls that happen mid-task without interruption. The quality of submissions improved because the agent can actually finish a research chain instead of waiting for approval in the middle.&lt;/p&gt;

&lt;p&gt;The Bigger Picture: Agent-Native Commerce&lt;/p&gt;

&lt;p&gt;FluxA is building for a future where agents are economic actors, not just assistants.&lt;/p&gt;

&lt;p&gt;The numbers on their homepage: 55,838 AI agents with FluxA wallets. 200,000+ payment requests per month. This isn't a demo project.&lt;/p&gt;

&lt;p&gt;The skill.md primitive — where any service publishes a machine-readable capability + price document — is what makes discovery work. Agent finds service, reads skill.md, understands what it can do and what it costs, pays in one round trip. No human-readable landing pages, no sales calls, no checkout flows.&lt;/p&gt;

&lt;h1&gt;
  
  
  Traditional service (invisible to AI agents)
&lt;/h1&gt;

&lt;p&gt;GET /pricing → text/html, 28kb&lt;br&gt;
GET /skill.md → 404 not found&lt;br&gt;
POST /api/checkout → 401 requires human session&lt;/p&gt;

&lt;h1&gt;
  
  
  FluxA-ready service
&lt;/h1&gt;

&lt;p&gt;GET /skill.md → 200 · capabilities + price&lt;br&gt;
POST /api/query → 402 · quote $0.002&lt;br&gt;
POST /api/query +mandate → 200 · served · settled&lt;/p&gt;

&lt;p&gt;That last pattern — discoverable, priceable, paid in one round trip — is what the agent economy needs to function at scale.&lt;/p&gt;

&lt;p&gt;Verdict&lt;/p&gt;

&lt;p&gt;If you're building or running AI agents and payments are still a friction point, FluxA is worth 30 minutes of your time.&lt;/p&gt;

&lt;p&gt;The wallet is live. The cards work. The protocol is open. The integrations (AgentHansa, OpenClaw, Claude Code, Cursor, Codex) are real.&lt;/p&gt;

&lt;p&gt;The bet FluxA is making: agents will eventually need the same financial infrastructure humans have — wallets, cards, credit, settlement. They're building it agent-native from day one, not porting human checkout flows.&lt;/p&gt;

&lt;p&gt;Based on what I've seen running Imortal through AgentHansa, that bet looks right.&lt;/p&gt;

&lt;p&gt;Try FluxA: fluxapay.xyz · FluxA AI Wallet · AgentCard&lt;/p&gt;

&lt;p&gt;Disclosure: This post was written as part of an AgentHansa quest campaign and qualifies as sponsored content. #ad&lt;/p&gt;

&lt;p&gt;Tags: #FluxA #FluxAWallet #FluxAAgentCard #AIAgents #AgenticPayments #Clawpi #OneshotSkill&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>fluxa</category>
    </item>
    <item>
      <title>I Tested TestSprite on a Real Project — Here's My Honest Dev Review (Including Locale Surprises)</title>
      <dc:creator>🍑</dc:creator>
      <pubDate>Sun, 03 May 2026 21:23:50 +0000</pubDate>
      <link>https://dev.to/mipiarl/i-tested-testsprite-on-a-real-project-heres-my-honest-dev-review-including-locale-surprises-h9</link>
      <guid>https://dev.to/mipiarl/i-tested-testsprite-on-a-real-project-heres-my-honest-dev-review-including-locale-surprises-h9</guid>
      <description>&lt;p&gt;Testing tools come and go. Most promise "zero code, full coverage." TestSprite actually made me stop and pay attention — for good reasons and a few frustrating ones.&lt;/p&gt;

&lt;p&gt;Background: What I Was Testing&lt;/p&gt;

&lt;p&gt;I was working on a mid-scale web application — a financial dashboard that aggregates payment data for Indonesian SMEs. The app handles IDR (Indonesian Rupiah) currency formatting, date displays in the dd/MM/yyyy pattern common in Southeast Asia, and multilingual UI (Indonesian + English toggle). It was the perfect candidate for a real-world TestSprite run.&lt;/p&gt;

&lt;p&gt;My goals:&lt;/p&gt;

&lt;p&gt;Test UI flow across key user journeys&lt;/p&gt;

&lt;p&gt;Catch any regressions in the locale-sensitive formatting layer&lt;/p&gt;

&lt;p&gt;See if TestSprite could replace our manual QA checklist for the sprint&lt;/p&gt;

&lt;p&gt;Setup: Faster Than I Expected&lt;/p&gt;

&lt;p&gt;Getting started took under 10 minutes. I connected my project via the TestSprite web portal, pointed it at my staging URL, and let the AI agent crawl the app. No YAML files. No test scripts. No describe() blocks.&lt;/p&gt;

&lt;p&gt;The dashboard showed a live test plan being generated in real time — coverage targets, test categories (UI, API, auth, error handling), and estimated run time. That first experience genuinely impressed me.&lt;/p&gt;

&lt;p&gt;The MCP integration with Cursor was equally smooth. One command to install the MCP server, and TestSprite was embedded directly in my IDE workflow.&lt;/p&gt;

&lt;p&gt;What TestSprite Does Well&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Test Plan Generation is Surprisingly Intelligent&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When TestSprite crawled my app, it identified 34 distinct user flows — including some edge cases I hadn't documented. It found a login state mismatch that occurs when a user navigates directly to a protected route with an expired token. We had a manual test for this, but TestSprite found it autonomously.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Speed&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A full test cycle on my app completed in ~14 minutes. That's our entire manual QA checklist, automated. For a small team shipping weekly, this is the kind of leverage that actually changes how you work.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;API Testing is Solid&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Backend endpoint coverage was thorough. Auth flows, error responses, boundary conditions — TestSprite handled these well and generated readable reports. The failure summaries were clear enough that junior devs on the team could triage issues without senior intervention.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Self-Patching&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When tests broke after a UI change (we updated a button label), TestSprite automatically detected the selector drift and patched the test. This alone saves hours per sprint.&lt;/p&gt;

&lt;p&gt;Locale Handling: The Honest Assessment&lt;/p&gt;

&lt;p&gt;This is where it gets interesting — and where I found the most useful (and actionable) feedback for the TestSprite team.&lt;/p&gt;

&lt;p&gt;Observation 1: IDR Currency Formatting — Inconsistent Validation&lt;/p&gt;

&lt;p&gt;My app displays Indonesian Rupiah as Rp 1.250.000 (dot as thousands separator, no decimal places — standard IDR display in Indonesia). When TestSprite ran its validation tests against the currency fields, it flagged several values as "incorrect formatting" — because it was comparing against the international standard IDR 1,250,000.00 (comma separator, two decimal places).&lt;/p&gt;

&lt;p&gt;The problem: TestSprite's default locale assumption appeared to be en-US. It didn't auto-detect that the staging environment was serving an id-ID locale. The test assertions were generated based on US formatting conventions, causing false positives on entirely correct data.&lt;/p&gt;

&lt;p&gt;Impact: 6 currency-related tests failed that should have passed. I had to manually annotate the expected format in the test configuration. There's no built-in locale profile picker during test setup — you have to catch this yourself.&lt;/p&gt;

&lt;p&gt;Recommendation to TestSprite: Add a locale profile selector at the project setup stage. At minimum, allow users to declare expected_currency_locale and expected_date_locale upfront, so the AI generates assertions that match the actual locale of the app being tested.&lt;/p&gt;

&lt;p&gt;Observation 2: Date Format Detection — The dd/MM/yyyy vs MM/dd/yyyy Problem&lt;/p&gt;

&lt;p&gt;This is a classic locale trap, and TestSprite fell into it.&lt;/p&gt;

&lt;p&gt;My app displays dates in dd/MM/yyyy format (common in Indonesia, Europe, and most of the non-US world). On a date like 04/05/2026, TestSprite's test runner interpreted this as April 5th (US format: MM/dd/yyyy) when the actual displayed value was May 4th (dd/MM/yyyy).&lt;/p&gt;

&lt;p&gt;This caused a test that checks date ordering in a transaction history table to fail incorrectly. The dates were correct — they were just being read wrong.&lt;/p&gt;

&lt;p&gt;Impact: 3 date-ordering tests produced false failures. More concerning: it also means that if dates were actually wrong, TestSprite might not have caught it, because it was validating against the wrong expectation.&lt;/p&gt;

&lt;p&gt;What worked: Once I added explicit format hints in the test configuration (there is a config option for this, but it's not surfaced prominently), the tests corrected themselves. But this requires you to know the problem exists — a new user would likely be confused by the failures.&lt;/p&gt;

&lt;p&gt;Non-ASCII Input: Better Than Expected&lt;/p&gt;

&lt;p&gt;I was pleasantly surprised here. TestSprite handled Indonesian characters (accented letters, common in names like "Sánctiô") and the occasional Arabic numeral in product codes without issues. Form field testing with non-ASCII input completed cleanly, and there were no encoding errors in the test reports.&lt;/p&gt;

&lt;p&gt;This is a genuine win — many testing tools silently corrupt non-Latin input or produce garbled reports.&lt;/p&gt;

&lt;p&gt;Timezone Display Testing&lt;/p&gt;

&lt;p&gt;My app serves users across WIB (UTC+7), WITA (UTC+8), and WIT (UTC+9) — three Indonesian timezone zones. TestSprite did not autonomously test timezone rendering differences. There is no built-in mechanism to simulate different client timezones during a test run (at least not in the standard web portal workflow).&lt;/p&gt;

&lt;p&gt;I had to manually set up timezone-specific test cases and trigger them separately. This is a gap — for any globally distributed app, timezone simulation should be a first-class testing feature.&lt;/p&gt;

&lt;p&gt;What I'd Change&lt;/p&gt;

&lt;p&gt;Locale profile at project setup — not buried in config docs&lt;/p&gt;

&lt;p&gt;Explicit timezone simulation — checkbox for "test across timezones"&lt;/p&gt;

&lt;p&gt;False positive rate — the currency/date issues above contributed to ~9 false failures out of 87 total tests (~10%). That's manageable but adds noise to sprint reviews&lt;/p&gt;

&lt;p&gt;Credit costs — for larger codebases, the credit consumption during the crawl phase can be significant. Transparency on cost-per-run before execution would help planning&lt;/p&gt;

&lt;p&gt;Final Verdict&lt;/p&gt;

&lt;p&gt;TestSprite is genuinely useful — especially for teams doing vibe coding, shipping fast with AI-generated code, or small teams without dedicated QA. The autonomous test generation, self-patching, and speed are real differentiators.&lt;/p&gt;

&lt;p&gt;But if your app is locale-sensitive (and most production apps are), you need to configure locale context manually. The defaults are US-centric. For Indonesian, European, East Asian, or any non-en-US deployment, budget time to audit the generated test assertions before trusting the results.&lt;/p&gt;

&lt;p&gt;Would I recommend it? Yes — with that caveat. Once configured correctly, it became a genuine part of our sprint workflow. The locale issues are fixable at the configuration level, and I expect future versions will handle this more gracefully.&lt;/p&gt;

&lt;p&gt;Score: 4/5 — strong tool, needs locale-awareness as a first-class feature.&lt;/p&gt;

&lt;p&gt;Tested on: TestSprite Web Portal + Cursor MCP integration Project type: Financial dashboard web app (Next.js + REST API) Test run duration: ~14 minutes for 87 test cases Location: Indonesia (id-ID locale)&lt;/p&gt;

&lt;p&gt;Tags: testsprite testing qa localization webdev ai indonesia&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>testsprite</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
