Every Mini App publishes a manifest at a fixed path. The Startale App fetches this file to register, display, and launch your Mini App.Documentation Index
Fetch the complete documentation index at: https://docs.startale.com/llms.txt
Use this file to discover all available pages before exploring further.
Location
| Constraint | Value |
|---|---|
| Protocol | HTTPS required (HTTP allowed for localhost in development only) |
| Timeout | 10 seconds |
| Maximum size | 10 KB |
| Maximum redirects | 3 |
Top-level structure
Use theframe key. It is the Farcaster standard, so a single farcaster.json file works on Startale, Farcaster, and Base without rename.
Startale-specific fields (featuredBannerImageUrl, projectWebsite, socialLinks) sit flat inside frame, not nested under any sub-object.
An older
miniapp top-level key is also accepted by the validator. Always use frame in new manifests.Required fields
Validated automatically
The manifest parser rejects any manifest missing these three fields:| Field | Type | Constraints |
|---|---|---|
frame.name | string | Display name. Recommended ≤32 chars. |
frame.iconUrl | string | App icon. See Media specs. |
frame.homeUrl | string | HTTPS launch URL. Recommended ≤1024 chars. |
Required for submission review
The following fields are not parser-enforced but are required for your Mini App to pass review, appear correctly in the explorer, and qualify for featured placement. A manifest missing any of these will be rejected during manual review.String-length recommendations come from the Farcaster Mini App spec.
| Field | Type | Notes |
|---|---|---|
frame.version | string | Must be "1" |
frame.tagline | string | One-line pitch shown on the app card. Recommended ≤30 chars. |
frame.subtitle | string | Short descriptor below the app name. Recommended ≤30 chars, plain text only. |
frame.primaryCategory | string | One value from Categories. |
frame.heroImageUrl | string | Image shown on the app grid card. |
frame.splashImageUrl | string | Centered icon on the loading screen. |
frame.splashBackgroundColor | string | Hex color for the splash background. |
frame.featuredBannerImageUrl | string | Featured rotation banner at the top of the explorer. |
frame.projectWebsite | string | HTTPS URL to your main project site. |
frame.socialLinks | object | At least one of twitter, discord, telegram, farcaster, website. |
accountAssociation | object | Optional. See accountAssociation below. |
Optional fields
| Field | Type | Notes |
|---|---|---|
frame.heroImageUrlAnimated | string | Animated hero played on hover in the grid. MP4, max 4s, 1 MB. |
frame.featuredBannerImageUrlAnimated | string | Animated featured banner played on hover. MP4, max 4s, 2 MB. |
frame.ogImageUrl | string | Social-preview image for X, Telegram, Discord, etc. |
frame.screenshotUrls | string[] | Up to 3 portrait screenshots. |
frame.tags | string[] | Recommended up to 5 tags, lowercase, ≤20 chars each. Used for explorer search and filtering. |
frame.webhookUrl | string | Notification endpoint. Required for push notifications. |
frame.screenCompatibility.desktop | boolean | When true, the iframe expands to full browser size on desktop. Default false (424×695 px frame). |
frame.screenCompatibility.landscapeOnly | boolean | When true, content rotates 90° when the viewport is portrait. Default false. |
accountAssociation
Three base64url-encoded fields that prove your hostname is owned by a specific Farcaster account. Generate them with the Farcaster manifest tool.
accountAssociation is required by the Farcaster spec and sits at the top level of the manifest, sibling to frame.
You can include
accountAssociation for compatibility with other Farcaster clients (Warpcast, etc.). The Startale App does not validate or use it at registration time, it is ignored.URL rules
Every URL in the manifest is validated. Failures reject the manifest.| Rule | Detail |
|---|---|
| Protocol | HTTPS required. HTTP only for localhost and 127.0.0.1 in development. |
| Private IPv4 ranges blocked | 0.0.0.0/8, 10.0.0.0/8, 100.64.0.0/10, 127.0.0.0/8, 169.254.0.0/16, 172.16.0.0/12, 192.168.0.0/16, 198.18.0.0/15, 240.0.0.0/4 |
| Private IPv6 ranges blocked | Loopback (::1), link-local (fe80::/10), unique local (fc00::/7) |
| Localhost in production | Blocked |
Banner fallback chain
When the Startale App displays your banner, it tries fields in this priority order:frame.featuredBannerImageUrlframe.imageUrlframe.heroImageUrlframe.splashImageUrlframe.iconUrl
featuredBannerImageUrl (2400×1260 px) for the best result.
Reusing a Farcaster or Base manifest
If your Mini App is already live on Farcaster or Base, your existingfarcaster.json works on Startale unchanged. Add Startale-specific fields (featuredBannerImageUrl, projectWebsite, socialLinks) flat inside your existing frame object. A single file works on all three platforms.