Define and configure your Mini App’s manifest to power search, discovery, and rich embeds in the Base App.
What you’ll learn
By the end of this guide, you’ll be able to:
- Define a complete
farcaster.json
manifest that meets Base App requirements.- Map each manifest property to its role in search, discovery, and embeds.
- Validate images, text, and URLs against required constraints.
- Link your manifest to your domain using
accountAssociation
.- Control indexing for staging and production with
noindex
.
/.well-known/farcaster.json
file is the manifest for your Mini App. It contains all the metadata Base App uses to:
Content-Type: application/json
and ensure the file is publicly accessible (no auth).primaryCategory
determines where your app appears in category browsing. tags
improve cross-surface visibility and filtering.ogTitle
, ogDescription
, ogImageUrl
) and heroImageUrl
power compelling feed previews that drive clicks.name
and iconUrl
appear when users save your Mini App for quick access.Property | Type | Required | Description |
---|---|---|---|
accountAssociation | object | Yes | Proves domain ownership for your Mini App. |
frame | object | Yes | Contains all metadata used by Base App. |
accountAssociation
fieldsProperty | Type | Required | Description |
---|---|---|---|
header | string | Yes | Encoded header for the association payload. |
payload | string | Yes | Encoded payload containing your domain. |
signature | string | Yes | Signature over the payload. |
frame
fieldsProperty | Type | Required | Description | Constraints |
---|---|---|---|---|
version | string | Yes | Manifest version. | Must be "1" . |
name | string | Yes | Mini App name. | Max 32 chars. |
homeUrl | string | Yes | Default launch URL. | HTTPS URL, max 1024 chars. |
iconUrl | string | Yes | Icon image URL. | HTTPS URL, PNG 1024×1024; transparent background discouraged. |
Property | Type | Required | Description | Constraints |
---|---|---|---|---|
splashImageUrl | string | Yes | Loading image. | HTTPS URL, recommended 200×200px. |
splashBackgroundColor | string | Yes | Loading background color. | Hex code (e.g., #000000 ). |
Property | Type | Required | Description | Constraints |
---|---|---|---|---|
primaryCategory | string | Yes | Controls where your app appears in category browsing. | One of: games , social , finance , utility , productivity , health-fitness , news-media , music , shopping , education , developer-tools , entertainment , art-creativity . |
tags | string[] | Yes | Search/filter tags. | Up to 5; ≤ 20 chars each; lowercase; no spaces/emojis/special chars. |
noindex | boolean | No | Exclude from search results. | true = exclude, default = include. |
requiredChains | string[] | No | CAIP-2 chain IDs. | Supported: eip155:8453 (Base mainnet), eip155:84532 (Base Sepolia). |
Property | Type | Required | Description | Constraints |
---|---|---|---|---|
subtitle | string | No | Short description under name. | Max 30 chars; avoid emojis/special chars. |
description | string | No | Promo text for app page. | Max 170 chars; avoid emojis/special chars. |
tagline | string | No | Marketing tagline. | Max 30 chars. |
heroImageUrl | string | No | Large promo image. | 1200×630px (1.91:1), PNG/JPG. |
screenshotUrls | string[] | No | Visual previews. | Max 3; portrait 1284×2778px recommended. |
Property | Type | Required | Description | Constraints |
---|---|---|---|---|
ogTitle | string | No | Open Graph title. | Max 30 chars. |
ogDescription | string | No | Open Graph description. | Max 100 chars. |
ogImageUrl | string | No | Open Graph image. | 1200×630px (1.91:1), PNG/JPG. |
imageUrl (deprecated) | string | No | Legacy default feed image. | Prefer ogImageUrl . |
buttonTitle (deprecated) | string | No | Legacy feed button text. | Prefer embed button config in OG. |
Property | Type | Required | Description | Constraints |
---|---|---|---|---|
webhookUrl | string | No | POST events endpoint. | HTTPS URL, max 1024 chars. Required if using notifications. |
primaryCategory
carefully — it determines where your app appears in Base App’s category browsing and rankings./.well-known/farcaster.json
"noindex": true
is used only for staging/developmentcurl
to confirm accessibility and headers: curl -sI https://your-domain.com/.well-known/farcaster.json
."noindex": true
for development or staging environments to prevent search indexing."noindex": false
for production so users can discover your app.primaryCategory
→ app won’t appear in category browsing