Install
openclaw skills install @kosyhmax/tlmnt-mini-app-doctorCheck Farcaster Mini Apps before release
openclaw skills install @kosyhmax/tlmnt-mini-app-doctorUse TLMNT's public endpoints to inspect one Farcaster Mini App URL. Keep payment authority with the operator and treat every paid result as evidence, not release approval.
Read references/api-contract.md before any paid request. Re-read the live Payment-Required terms instead of trusting cached values.
Payment-Signature header in logs. Retain the original header only in a protected recovery context.exact with the canonical Base USDC EIP-3009 authorization.Free checks need only an HTTPS client. A paid request additionally needs a trusted x402 v2 client and an operator-controlled wallet already funded with canonical Base USDC. Never fund, bridge, swap, approve, or transfer assets merely to make this skill work unless the operator separately requests and approves that action.
POST JSON {"url":"https://example.com/miniapp"} to the selected free eligibility endpoint. Require HTTP 200 and eligibleForPaidAttempt: true.
Use the returned normalizedUrl as the paid request body. For Deep, require explicit HTTPS and preserve its query exactly; the final fetched URL must equal miniapp.homeUrl, including query.
POST the exact normalized body to the paid endpoint without a payment header. Require HTTP 402, decode the x402 v2 Payment-Required declaration with a trusted x402 client, and compare every decisive term to the table in the reference:
Stop on a missing or mismatched decisive term, a conflicting resource declaration, or more than one accepted payment option. Discovery metadata such as the Bazaar extension is not a second payment option.
The Bazaar input value is a schema example and does not bind the requested Mini App target. Bind the purchase operationally: record the operator-approved normalized URL and send the exact same JSON body on the authorized retry.
Show the operator the tier, normalized target, exact USDC amount, Base network, and payee. After explicit approval, let the trusted x402 client create one authorization and perform one request.
Preserve the exact response bytes and settlement metadata. Do not recompute, reformat, or silently replace the dossier.
If the paid request times out, returns an indeterminate settlement error, or loses the response after authorization, do not make a new payment. POST to the matching recovery endpoint with the original Payment-Signature header and no body.
Retry-After and retry recovery only; do not authorize payment.Recovery retrieves stored paid bytes or reconciles finalized Base evidence. It does not recompute the target.
For Static, treat staticEvidenceVerdict as a server-side evidence summary and inspect the full findings.
For Deep, branch on decision.nextAction:
RUN_CLIENT_VERIFICATION: continue with real Farcaster-client verification. readyForRelease is still always false.REVIEW_AND_FIX_BLOCKERS: review proven pinned-policy failures; apply only relevant, non-executable hints.REVIEW_AND_RESOLVE_INDETERMINATE_EVIDENCE: resolve the missing evidence. Never repurchase unchanged bytes merely to retry an unsupported format or transient dependency.Deep v1 can return GO only when every referenced image is PNG. JPEG, GIF, and WebP are fetched, hashed, and magic-identified but make their container, geometry, and alpha evidence indeterminate. assetCoverage.completeWithinBounds describes byte/hash coverage only; it is not release approval.
Do not automatically order or pay for the separate 79 USDC focused repair. It requires agreed scope and access, before/after verification, and payment only after the fix is verified.