Wrap your app with MiniKitProvider and initialize the frame
providers/MiniKitProvider.tsx
app/layout.tsx
'use client'; import { MiniKitProvider } from '@coinbase/onchainkit/minikit'; import { ReactNode } from 'react'; import { base } from 'wagmi/chains'; export function MiniKitContextProvider({ children }: { children: ReactNode }) { return ( <MiniKitProvider apiKey={process.env.NEXT_PUBLIC_CDP_CLIENT_API_KEY} chain={base}> {children} </MiniKitProvider> ); }
import { MiniKitContextProvider } from '@/providers/MiniKitProvider'; export default function RootLayout({ children }: { children: React.ReactNode }) { return ( <html lang='en'> <body> <MiniKitContextProvider>{children}</MiniKitContextProvider> </body> </html> ); }
useMiniKit()
setFrameReady()
'use client'; import { useEffect } from 'react'; import { useMiniKit } from '@coinbase/onchainkit/minikit'; export default function HomePage() { const { setFrameReady, isFrameReady } = useMiniKit(); useEffect(() => { if (!isFrameReady) setFrameReady(); }, [isFrameReady, setFrameReady]); return <div>Your app content goes here</div>; }
Was this page helpful?