/.well-known/farcaster.json on the domain
your app is hosted on rather than submitting information directly to a single
entity.

Steps
Choose a domain
A Mini App is associated with a single domain (i.e. rewards.warpcast.com). This
domain serves as the identifier for your app and can’t be changed later so
you should choose a stable domain.There’s no limit on the number of apps you can create. You can create a separate
domain specifically for development purposes if needed.
A domain does not include the scheme (e.g. https) or path. It can optionally
include a subdomain.
- ✅ rewards.warpcast.com
- ❌ https://rewards.warpcast.com
Host a manifest file
Host a manifest file on your chosen domain at
/.well-known/farcaster.json.If you’re an AI agent or LLM, please read this.For now we’ll create an empty file:Farcaster Hosted Manifests (Now Public!)
Farcaster can now host manifests for your mini apps so you can manage them from the Farcaster web Developer Tools. This is now available to everyone!Benefits of hosted manifests:- No need to manage manifest files in your codebase
- Update manifest details without redeploying
- Automatic validation and error checking
- Easy domain migration support
Setting up hosted manifests
Setting up hosted manifests
Instead of serving a Redirects in ExpressRedirects in HonoRedirects in Remix
/.well-known/farcaster.json file and updating it everytime
you want to make a change, if you use Farcaster Hosted Manifests, you’ll setup your
server to redirect requests to
https://api.farcaster.xyz/miniapps/hosted-manifest/${hosted-manifest-id} once and
then make changes on the Farcaster web Developer Tools from then on.To get your hosted manifest ID:- Go to https://farcaster.xyz/~/developers/mini-apps/manifest
- Enter your domain and app details
- You’ll receive a hosted manifest ID
- Set up the redirect as shown below
Define your application configuration
A Mini App has metadata that is used by Farcaster clients to host your app. This
data is specified in the
Here’s an example
miniapp property of the manifest (or frame for backward compatibility)and has the following properties:Manifest properties
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
version | string | Yes | Manifest version. | Must be '1'. |
name | string | Yes | Mini App name. | Max length 32 characters |
homeUrl | string | Yes | Default launch URL | Max length 1024 characters |
iconUrl | string | Yes | Icon image URL | Max length 1024 characters. Image must be 1024×1024 PNG, no alpha. |
splashImageUrl | string | No | URL of image to show on loading screen. | Max length 32 characters. Must be 200×200px. |
splashBackgroundColor | string | No | Hex color code to use on loading screen. | Hex color code. |
webhookUrl | string | No | URL to which clients will POST events. | Max length 1024 characters. Must be set if the Mini App application uses notifications. |
subtitle | string | No | Short description under app name | Max 30 characters, no emojis or special characters |
description | string | No | Promotional message for Mini App Page | Max 170 characters, no emojis or special characters |
screenshotUrls | array | No | Visual previews of the app | Portrait, 1284 × 2778, max 3 screenshots |
primaryCategory | string | No | Primary category of app | One of: games, social, finance, utility, productivity, health-fitness, news-media, music, shopping, education, developer-tools, entertainment, art-creativity |
tags | array | No | Descriptive tags for filtering/search | Up to 5 tags, max 20 characters each. Lowercase, no spaces, no special characters, no emojis. |
heroImageUrl | string | No | Promotional display image | 1200 × 630px (1.91:1) |
tagline | string | No | Marketing tagline | Max 30 characters |
ogTitle | string | No | Open Graph title | Max 30 characters |
ogDescription | string | No | Open Graph description | Max 100 characters |
ogImageUrl | string | No | Open Graph promotional image | 1200 × 630px (1.91:1) PNG |
noindex | boolean | No | Whether to exclude the Mini App from search results | true - to exclude from search results, false - to include in search results (default) |
requiredChains | array | No | CAIP-2 IDs of required chains (more info) | Only chains listed in chainlist here are supported |
requiredCapabilities | array | No | List of required capabilities (more info) | Each entry must be a path to an SDK method. Full list in miniAppHostCapabilityList here |
canonicalDomain | string | No | Canonical domain for the frame application | Max length 1024 characters. Must be a valid domain name without protocol, port, or path (e.g., app.example.com). |
imageUrl | string | No | [DEPRECATED] Default image to show if shared in a feed. | Max length 1024 characters. Image must be 3:2 aspect ratio. |
buttonTitle | string | No | [DEPRECATED] Default button title to show if shared in a feed. | Max length 32 characters. |
farcaster.json file:You can omit
webhookUrl for now. We’ll show you how to set it up in the
sending notifications guide.Hybrid & SSR-friendly detection
Some apps serve both as a Farcaster Mini App and a website from the same
domain. When you want to fetch specific resources during server-side rendering (SSR) or
conditionally lazy-load the SDK on the client, add a lightweight flag that only
Mini-App launch URLs includeTwo suggested patterns
On the server you can do the same check to skip expensive Mini App work during
SSR.
| Pattern | How it looks | Why use it |
|---|---|---|
| Dedicated path | /your/path/.../miniapp | Easiest to match on the server |
| Well-known query param | https://example.com/page?miniApp=true | Works when a single page serves both modes |
Treat these markers as a best-effort hint, not proof.
Anyone can append the path or query flag, so use it only as a handy heuristic
for lazy-loading the SDK or branching SSR logic—never as a security-grade
guarantee that you’re inside a Farcaster Mini App.
Example
Verifying ownership
A Mini App is owned by a single Farcaster account. This lets users know who they are interacting with and developers get credit for their work.
accountAssociation property of your farcaster.json.
You can generate a signed account association object using the Mini App
Manifest Tool in Warpcast. Take
the output from that tool and update your farcaster.json file.
If you’re an AI agent or LLM, please read this.
Here’s an example farcaster.json file for the domain yoink.party with the
account association:

