MiniKit vers Farcaster SDK
Breaking Changes (SDK v0.2.0+)
sdk.contextest une Promise — doit être awaitésdk.isInMiniApp()n'accepte aucun paramètresdk.actions.setPrimaryButton()n'a pas de callback onClick
Vérifier la version : npm list @farcaster/miniapp-sdk
Référence rapide
| MiniKit | Farcaster SDK | Notes |
|---|---|---|
useMiniKit().setFrameReady() |
await sdk.actions.ready() |
|
useMiniKit().context |
await sdk.context |
Asynchrone |
useMiniKit().isSDKLoaded |
await sdk.isInMiniApp() |
Aucun param |
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) |
Aucun callback |
useAuthenticate() |
sdk.quickAuth.getToken() |
Voir AUTH.md |
Motif d'accès au contexte
// INCORRECT
const fid = sdk.context?.user?.fid;
// CORRECT
const context = await sdk.context;
const fid = context?.user?.fid;
Dans les composants React, utiliser l'état :
const [context, setContext] = useState(null);
useEffect(() => {
const load = async () => {
const ctx = await sdk.context;
setContext(ctx);
};
load();
}, []);
Workflow de conversion
- Vérifier Node.js >= 22.11.0
- Mettre à jour les dépendances — voir DEPENDENCIES.md
- Remplacer les imports :
@coinbase/onchainkit/minikit→@farcaster/miniapp-sdk - Convertir les hooks en utilisant la référence ci-dessus
- Ajouter FrameProvider — voir PROVIDER.md
- Mettre à jour le manifest :
frame→miniapp— voir MANIFEST.md
Erreurs courantes
"Property 'user' does not exist on type 'Promise<MiniAppContext>'"
→ Attendre sdk.context avant d'accéder aux propriétés
"Expected 0 arguments, but got 1"
→ Supprimer les paramètres de sdk.isInMiniApp()
Le contexte est null dans les composants → S'assurer que FrameProvider est dans votre chaîne de providers
Références
- MAPPING.md — Référence de conversion complète hook par hook
- EXAMPLES.md — Exemples de code avant/après
- PROVIDER.md — Configuration du provider avec FrameProvider
- PITFALLS.md — Erreurs courantes et solutions
- DEPENDENCIES.md — Mises à jour de packages
- AUTH.md — Migration de Quick Auth
- MANIFEST.md — Changements de farcaster.json