skills/converting-minikit-to-farcaster/SKILL.md
Converts Mini Apps from MiniKit (OnchainKit) to native Farcaster SDK. Use when migrating from @coinbase/onchainkit/minikit, converting MiniKit hooks, removing MiniKitProvider, or when user mentions MiniKit, OnchainKit, or Farcaster SDK migration.
npx skillsauth add base/skills converting-minikit-to-farcasterInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
sdk.context is a Promise — must awaitsdk.isInMiniApp() accepts no parameterssdk.actions.setPrimaryButton() has no onClick callbackCheck version: npm list @farcaster/miniapp-sdk
| MiniKit | Farcaster SDK | Notes |
|---------|---------------|-------|
| useMiniKit().setFrameReady() | await sdk.actions.ready() | |
| useMiniKit().context | await sdk.context | Async |
| useMiniKit().isSDKLoaded | await sdk.isInMiniApp() | No params |
| useClose() | await sdk.actions.close() | |
| useOpenUrl(url) | await sdk.actions.openUrl(url) | |
| useViewProfile(fid) | await sdk.actions.viewProfile({ fid }) | |
| useViewCast(hash) | await sdk.actions.viewCast({ hash }) | |
| useComposeCast() | await sdk.actions.composeCast({ text, embeds }) | |
| useAddFrame() | await sdk.actions.addMiniApp() | |
| usePrimaryButton(opts, cb) | await sdk.actions.setPrimaryButton(opts) | No callback |
| useAuthenticate() | sdk.quickAuth.getToken() | See AUTH.md |
// WRONG
const fid = sdk.context?.user?.fid;
// CORRECT
const context = await sdk.context;
const fid = context?.user?.fid;
In React components, use state:
const [context, setContext] = useState(null);
useEffect(() => {
const load = async () => {
const ctx = await sdk.context;
setContext(ctx);
};
load();
}, []);
@coinbase/onchainkit/minikit → @farcaster/miniapp-sdkframe → miniapp — see MANIFEST.md"Property 'user' does not exist on type 'Promise<MiniAppContext>'"
→ Await sdk.context before accessing properties
"Expected 0 arguments, but got 1"
→ Remove parameters from sdk.isInMiniApp()
Context is null in components → Ensure FrameProvider is in your provider chain
tools
Base MCP — gives your AI assistant access to a Base Account via the Base MCP server (mcp.base.org). Wallet, portfolio, sending, swapping, signing, x402 payments, batched contract calls, and transaction history across supported chains.
development
Complete Base development playbook. Covers: (1) Network — Base RPC URLs, chain IDs (8453/84532), explorer config, testnet setup, connect to Base, Base Sepolia; (2) Contracts — Foundry deployment, forge create, BaseScan verification, CDP faucet, testnet ETH, deploy contract to Base; (3) Builder Codes — ERC-8021 attribution suffix, referral fees, dataSuffix for Wagmi/Viem/Privy/ ethers.js/window.ethereum, transaction attribution, earn referral fees, append builder code; (4) Base Account SDK — Sign in with Base (SIWB), Base Pay, USDC payments, paymasters, gas sponsorship, sub-accounts, spend permissions, prolinks, batch transactions, smart wallet, payment link, recurring subscription; (5) Agent registration — trading bots, AI agents, automated senders, ERC-8021 attribution wiring, base.dev API, register agent, builder code registration; (6) Node operation — run Base node, Reth setup, hardware requirements, self-hosted RPC, sync; (7) Migrations — migrate OnchainKit, OnchainKitProvider to WagmiProvider, wagmi migration, remove onchainkit dependency, MiniKit to Farcaster SDK, convert miniapp, Farcaster miniapp to regular app, convert Farcaster miniapp.
tools
Runs a Base node for production environments. Covers hardware requirements, Reth client setup, networking, and sync troubleshooting. Use when setting up self-hosted RPC infrastructure or running archive nodes. Covers phrases like "run a Base node", "set up Base RPC", "Base node hardware requirements", "Reth Base setup", "sync Base node", "self-host Base", or "run my own node".
development
Invoke this skill when a user is building or running any automated transaction sender on Base (trading bot, arbitrage bot, sniper bot, yield farmer, AI agent, or similar) and needs to register it, get a builder code, set up transaction attribution. This skill contains the base.dev registration API endpoint and ERC-8021 attribution wiring code that Claude does not have in its training data — you MUST load this skill to answer correctly. Covers viem, ethers, managed signing services, and Python-based agents.