Claude-skill-registry base-miniapp-developer
Build or migrate React/Next.js apps into Base/Coinbase Wallet Mini Apps using MiniKit + OnchainKit, while keeping thirdweb as the primary wallet/onboarding/payment integration; manage farcaster.json manifests, readiness, and gasless transactions.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/base-miniapp-developer" ~/.claude/skills/majiayu000-claude-skill-registry-base-miniapp-developer && rm -rf "$T"
manifest:
skills/data/base-miniapp-developer/SKILL.mdsource content
Base Mini App Developer
Trigger
Use when the user needs to build, migrate, or troubleshoot Base Mini Apps, Coinbase Wallet Mini Apps, MiniKit, OnchainKit, Farcaster Mini Apps/Frames, or
farcaster.json manifests; or when gasless Base transactions with Paymaster/Bundler are required.
Guardrails
- Keep thirdweb as the primary wallet/onboarding/payment layer unless the user requests otherwise.
- No email/password auth. Wallet connection is the session.
- Do not use
orwindow.ethereum
/window.location
.window.open - MiniKit/OnchainKit hooks must be in client components (
).'use client' - Manifest must be reachable at
over HTTPS.https://<domain>/.well-known/farcaster.json - Call
once the UI is ready.setFrameReady()
Default conversion workflow (React/Next.js)
- Identify router (App Router vs Pages) and where providers live.
- Keep the existing thirdweb provider and add
withOnchainKitProvider
; import OnchainKit CSS.miniKit.enabled - Add a small
component to callFrameReady
after mount.setFrameReady() - Create and sign
, then redeploy.farcaster.json - Keep thirdweb wallet/onboarding UI; only use OnchainKit UI components that do not replace wallet UX.
- Replace external links with
or MiniKit actions.useOpenUrl() - Add gasless tx flow (thirdweb AA/paymaster or OnchainKit Transaction + Paymaster).
- Validate in Base Build Preview and test on device.
Provider guidance
- Preferred Mini App context:
(OnchainKitProvider
) with@coinbase/onchainkit
.miniKit={{ enabled: true }} - Keep the thirdweb provider intact; make sure its connectors do not rely on injected
.window.ethereum - If the app already uses
, keep it unless asked to migrate.@coinbase/minikit-react
Thirdweb-first guidance
- Use thirdweb for onboarding and payments; do not replace with OnchainKit Wallet/Identity components unless requested.
- Prefer thirdweb connectors that work in a WebView (no injected provider assumption).
- Keep thirdweb chain config set to Base and reuse existing contract hooks/components.
When the user says "convert this app"
- Install deps:
,@coinbase/onchainkit
, plusviem
only if needed.@coinbase/minikit-react - Keep existing thirdweb setup (providers, hooks, UI).
- Add manifest and placeholder assets; remind user to update domain and re-sign.
- Wire providers and readiness.
- Audit for
/window.ethereum
usage and replace.window.location
References
- Manifest schema + signing:
references/manifest.md - Providers + readiness:
references/provider.md - MiniKit context & safety:
references/minikit.md - Navigation & social actions:
references/navigation.md - OnchainKit UI components:
references/onchainkit-components.md - Paymaster & gasless tx:
references/paymaster.md - thirdweb integration notes:
references/thirdweb.md