fix(paywall/evm): route Mezo users to mezo.org/feature/borrow faucet link#3
fix(paywall/evm): route Mezo users to mezo.org/feature/borrow faucet link#3ryanRfox wants to merge 1 commit intocandidate/2.10.0-mezo.5from
Conversation
…link
The testnet-only "Need {tokenName} on {chainName}? Get some here" link was
hardcoded to https://faucet.circle.com/, which is Circle's USDC faucet for
Circle-native chains. On Mezo (chainId 31611 testnet, 31612 mainnet), users
are paying in Mezo USD and the Circle faucet is a dead-end.
Make the link conditional on chain: Mezo chains route to the canonical MUSD
mint flow at https://mezo.org/feature/borrow; all other chains continue to
use faucet.circle.com (correct for Base Sepolia USDC, Arbitrum Sepolia USDC,
etc., which the upstream paywall is designed for).
Regenerates the EVM paywall bundle (TS/Go/Python templates).
Reported by docscrew from novice-tester feedback on the x402 quickstart.
Ships on 2.10.0-mezo.7 for the Mezo hackathon preview. After this lands,
queue an upstream PR to x402-foundation/x402 (broader fix needed there —
should drive the URL from chain/token metadata, not a hardcoded list).
|
@ryanRfox ready for review + merge. Per mayor's ship plan (hq-wisp-tbblud): tiny PR first, then release v2.10.0-mezo.7, then humor.vativ.io redeploy + browser-verify. x402/fox is separately owning the upstream metadata-driven fix. |
|
Code-review from x402/fox (hq-c1hfz): LGTM for mezo.7. Surgical, no regressions. Ship it. Verified:
Minor, cosmetic — not blocking mezo.7:
Upstream track: design doc in progress at |
|
Code review from @x402/fox: LGTM, ship it (couldn't self-approve via button — same GH user). One cosmetic note they flagged and are aware of: the @ryanRfox cleared for merge whenever you're ready. |
|
Rejecting this approach. x402 is an open standard; the paywall should stay chain-neutral. Hardcoding Mezo chain IDs (31611/31612) into Correct design: the "Need {token}" faucet URL is a configurable variable in the paywall's SDK config. The paywall defines a default (e.g. Not merging. x402/fox will redesign along these lines. Mezo's humor app adopts the override once the new SDK pattern lands. |
|
Closing per @ryanRfox's rejection + mayor's ship redirect (hq-wisp-ufqxf6): chain-ID conditionals are the wrong shape for an open chain-neutral standard. Paywall API should expose |
Summary
Fix the hardcoded testnet "Need {tokenName} on {chainName}? Get some here" link on the EVM paywall. It was pointing to
https://faucet.circle.com/— Circle's USDC faucet — which is a dead-end for Mezo users (paying in Mezo USD, not USDC, on a non-Circle chain).Reported by docscrew from novice-tester feedback on the x402 quickstart. Tracked as
hq-eb54v. Mayor routed for tiny-PR + release ship path asv2.10.0-mezo.7.What changed
typescript/packages/http/paywall/src/evm/EvmPaywall.tsx— added a chain-conditionalfaucetUrl:31611) or Mezo Mainnet (31612) →https://mezo.org/feature/borrow(canonical MUSD mint flow)https://faucet.circle.com/(correct for Base Sepolia USDC, Arbitrum Sepolia USDC, etc.)pnpm run build:paywall):src/evm/gen/template.ts,go/http/evm_paywall_template.go,python/x402/http/paywall/evm_paywall_template.py.Scope
Intentionally tight: EVM only. SVM (Solana) and AVM (Algorand) keep
faucet.circle.com— that IS the correct faucet for Solana Devnet USDC and Algorand Testnet USDC, so no change warranted there.Why chain-conditional and not metadata-driven
This is the short-term Mezo-preview fix so we can ship
v2.10.0-mezo.7today (novice testers are hitting the dead-end now). The broader metadata-driven fix (drive the faucet URL from payment-requirementasset/extrametadata so any chain/token can ship its own pointer) is being handled separately by @x402/fox via an upstream PR tox402-foundation/x402, coordinated with x402-foundation#1971.Ship plan after merge
gh release create v2.10.0-mezo.7onvativ/x402-mezo-previewwith tgz artifacts2.10.0-mezo.7and redeploymezo.org/feature/borrowTest plan
https://mezo.org/feature/borrowfaucet.circle.com(no regression for canonical-preview consumers)