SDK Setup
How to set up the Farcaster SDK for Mini App development.
Installation
npm install @farcaster/miniapp-sdk @farcaster/miniapp-wagmi-connector
Basic Setup
Initialize SDK
import { sdk } from '@farcaster/miniapp-sdk';
// In your app's entry point
useEffect(() => {
sdk.actions.ready();
}, []);
Wagmi Integration
import { createConfig, http } from 'wagmi';
import { base } from 'wagmi/chains';
import { farcasterMiniApp } from '@farcaster/miniapp-wagmi-connector';
export const config = createConfig({
chains: [base],
connectors: [farcasterMiniApp()],
transports: {
[base.id]: http()
}
});
Provider Setup
import { WagmiProvider } from 'wagmi';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
const queryClient = new QueryClient();
function App() {
return (
<WagmiProvider config={config}>
<QueryClientProvider client={queryClient}>
<YourApp />
</QueryClientProvider>
</WagmiProvider>
);
}
User Context
Access Farcaster user data:
import { sdk } from '@farcaster/miniapp-sdk';
async function getUserInfo() {
const context = await sdk.context;
return {
fid: context.user.fid,
username: context.user.username,
displayName: context.user.displayName,
pfpUrl: context.user.pfpUrl
};
}
Manifest Configuration
Create .well-known/farcaster.json:
{
"accountAssociation": {
"header": "eyJ...",
"payload": "eyJ...",
"signature": "MHg..."
},
"frame": {
"version": "1",
"name": "AceSteps",
"iconUrl": "https://acesteps.xyz/icon.png",
"homeUrl": "https://acesteps.xyz",
"splashImageUrl": "https://acesteps.xyz/splash.png",
"splashBackgroundColor": "#0D0D0D"
}
}
Actions
Open URL
await sdk.actions.openUrl('https://example.com');
Share
await sdk.actions.composeCast({
text: 'Check out this song!',
embeds: ['https://acesteps.xyz/song/123']
});