mcpField
C
converting-minikit-to-farcaster

converting-minikit-to-farcaster

github.com/base開発120317 回インストール1 日前に更新
リポジトリ

converting-minikit-to-farcaster について

MiniKit から Farcaster SDK へアプリを移行する開発者向けのリファレンスです。フックと SDK 操作の対応、バージョン変更、非同期コンテキストの扱い、よくあるエラーを説明します。

主な機能

  1. 01MiniKit フックと SDK 操作の対応表
  2. 02SDK v0.2.0 以降の変更点
  3. 03非同期コンテキストのアクセス例
  4. 04移行と依存関係更新の手順
  5. 05よくあるエラーの調査

活用シーン

  1. 01MiniKit アプリを Farcaster SDK に移行
  2. 02SDK 更新後のコンテキストアクセスを調整
  3. 03移行時の型やコンポーネントの問題を調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/base/skills --skill converting-minikit-to-farcaster

インストール後、Claude Code で/converting-minikit-to-farcasterを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

AUTH.md
DEPENDENCIES.md
EXAMPLES.md
LICENSE
MANIFEST.md
MAPPING.md
PITFALLS.md
PROVIDER.md
README.md
analyze_project.py
validate_conversion.py

詳細

MiniKit から Farcaster SDK への移行

破壊的変更(SDK v0.2.0 以降)

  1. sdk.context は Promise です。await が必要です
  2. sdk.isInMiniApp() はパラメーターを受け取りません
  3. sdk.actions.setPrimaryButton() には onClick コールバックがありません

バージョンを確認:npm list @farcaster/miniapp-sdk

クイックリファレンス

MiniKitFarcaster SDK備考
useMiniKit().setFrameReady()await sdk.actions.ready()
useMiniKit().contextawait sdk.context非同期
useMiniKit().isSDKLoadedawait sdk.isInMiniApp()パラメーターなし
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)コールバックなし
useAuthenticate()sdk.quickAuth.getToken()AUTH.md を参照

コンテキストへのアクセスパターン

// WRONG
const fid = sdk.context?.user?.fid;

// CORRECT
const context = await sdk.context;
const fid = context?.user?.fid;

React コンポーネントでは、状態を使用します:

const [context, setContext] = useState(null);

useEffect(() => {
  const load = async () => {
    const ctx = await sdk.context;
    setContext(ctx);
  };
  load();
}, []);

移行ワークフロー

  1. Node.js >= 22.11.0 を確認します
  2. 依存関係を更新します。DEPENDENCIES.md を参照
  3. インポートを置き換えます:@coinbase/onchainkit/minikit → @farcaster/miniapp-sdk
  4. 上記のリファレンスを使ってフックを変換します
  5. FrameProvider を追加します。PROVIDER.md を参照
  6. マニフェストを更新します:frame → miniapp。MANIFEST.md を参照

よくあるエラー

「型 'Promise' にプロパティ 'user' は存在しません」 → プロパティにアクセスする前に sdk.context を await します

「引数は 0 個必要ですが、1 個渡されています」 → sdk.isInMiniApp() からパラメーターを削除します

コンポーネント内の Context が null になる → FrameProvider がプロバイダーチェーンに含まれていることを確認します

参考資料

コメント