converting-minikit-to-farcaster作者: base
Converts Mini Apps from MiniKit (OnchainKit) to native Farcaster SDK. Use when migrating from @coinbase/onchainkit/minikit, converting MiniKit hooks, removing…
npx skills add https://github.com/base/skills --skill converting-minikit-to-farcasterMiniKit to Farcaster SDK
Breaking Changes (SDK v0.2.0+)
sdk.contextis a Promise — must awaitsdk.isInMiniApp()accepts no parameterssdk.actions.setPrimaryButton()has no onClick callback
Check version: npm list @farcaster/miniapp-sdk
Quick Reference
| 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 |
Context Access Pattern
// 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();
}, []);
Conversion Workflow
- Verify Node.js >= 22.11.0
- Update dependencies — see DEPENDENCIES.md
- Replace imports:
@coinbase/onchainkit/minikit→@farcaster/miniapp-sdk - Convert hooks using reference above
- Add FrameProvider — see PROVIDER.md
- Update manifest:
frame→miniapp— see MANIFEST.md
Common Errors
"Property 'user' does not exist on type 'Promise'"
→ 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
References
- MAPPING.md — Complete hook-by-hook conversion reference
- EXAMPLES.md — Before/after code examples
- PROVIDER.md — Provider setup with FrameProvider
- PITFALLS.md — Common errors and solutions
- DEPENDENCIES.md — Package updates
- AUTH.md — Quick Auth migration
- MANIFEST.md — farcaster.json changes
來自 base 的更多技能
adding-builder-codes
by base
Integrate Base Builder Codes (ERC-8021) into web3 applications for onchain transaction attribution and referral fee earning. Use when a project needs to append…
building-with-base-account
by base
Integrates Base Account SDK for authentication and payments. Covers Sign in with Base (SIWB), Base Pay, Paymasters, Sub Accounts, Spend Permissions, Prolinks,…
connecting-to-base-network
by base
Provides Base network configuration including RPC endpoints, chain IDs, and explorer URLs. Use when connecting wallets, configuring development environments,…
convert-farcaster-miniapp-to-app
by base
Converts Farcaster miniapp SDK projects into regular Base/web apps. Starts with an interactive quiz to choose between the default regular-app conversion and a…
converting-minikit-to-farcaster
by base
Converts Mini Apps from MiniKit (OnchainKit) to native Farcaster SDK. Use when migrating from @coinbase/onchainkit/minikit, converting MiniKit hooks, removing…
deploying-contracts-on-base
by base
Deploys smart contracts to Base using Foundry. Covers forge create commands, contract verification, testnet faucet setup via CDP, and BaseScan API key…
migrating-an-onchainkit-app
by base
Migrate apps from @coinbase/onchainkit to standalone wagmi / viem components with zero OnchainKit dependency.
registering-agent-base-dev
by base
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,…