fix(aip18): auto-mint 1,000 test USDC for pay-only buyers on publish#25
Merged
Conversation
A pure buyer (intent: pay) skips on-chain activation (DEC-3) — but activation is exactly where providers receive their 1,000 test USDC. So a buyer linked successfully yet ended up with a ZERO balance and could buy nothing, which defeats the point of a buyer. Fix: in the pay-only publish branch, mint 1,000 test USDC to the buyer's Smart Wallet via the same gasless, paymaster-sponsored UserOp providers use — just the mint, no registration. Idempotent (only mints an empty wallet, so re-publishing doesn't top up), best-effort (a failure warns but never blocks the link). Also corrects the buyer success output: "top up with `actp mint`" → "on testnet you start with 1,000 test USDC" (`actp mint` is mock-only). Verified live: re-publishing a linked buyer minted 1,000 USDC gaslessly (EOA holds 0 ETH) → balance 1,000.00 USDC. This also empirically confirms the buyer's auto wallet + MockUSDC are paymaster-sponsored — no allowlist change needed. Full SDK suite green (2320). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
DamirAGI
added a commit
that referenced
this pull request
Jun 8, 2026
A buyer now receives 1,000 test USDC on first publish (gasless), so it can actually pay — previously the pay-only short-circuit skipped the mint and left buyers with a zero balance. Source merged in #25. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The bug (mine — from the pay-only short-circuit)
A pure buyer (
intent: pay) skips on-chain activation (DEC-3) — but activation is exactly where providers receive their 1,000 test USDC. So a buyer linked successfully yet ended up with a zero balance and could buy nothing. A buyer that can't buy is pointless.Fix
In the pay-only publish branch, mint 1,000 test USDC to the buyer's Smart Wallet via the same gasless, paymaster-sponsored UserOp providers use — just the mint, no registration. Idempotent (only mints an empty wallet, so re-publishing doesn't top up), best-effort (failure warns, never blocks the link). Also fixed the success copy: "top up with
actp mint" → "on testnet you start with 1,000 test USDC" (actp mintis mock-only).Verified live + closes the gasless question
Re-publishing a linked buyer (
beyer-again) minted 1,000 USDC gaslessly — the EOA holds 0 ETH (confirmed on-chain) → balance 1,000.00 USDC. That sponsored UserOp (touching MockUSDC, from a 0-ETH wallet) empirically confirms the buyer's auto wallet + USDC are paymaster-sponsored — so the earlier "allowlist must change" worry is retracted, now proven unnecessary. No contracts changed; buyer = requester on the existing allowlist.Full SDK suite green (2320). Builds on #24.
🤖 Generated with Claude Code