Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
103 changes: 103 additions & 0 deletions docs/mini-apps/features/sign-manifest.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
---
title: Sign Your Manifest
description: Learn what a Mini App manifest is, why signing it matters, and how to generate and add an account association to your app.
---

Every Mini App needs a **manifest** (`farcaster.json`) file to be recognized by Farcaster clients. It declares your app’s details and domain, and when signed, produces an **Account Association** that proves your Farcaster account owns and can publish the app. Without it, your app won’t work as a Mini App.

### Prerequisites

- A deployed App, accessible via HTTPS
- A Base app account

## Location
Your manifest file must be publicly accessible at:
`https://your-domain.com/.well-known/farcaster.json`


<Tip> Want to learn more about manifests? 👉 Check out our [Manifest guide](/mini-apps/features/manifest).</Tip>


## Sign Your Manifest

There are two supported ways to sign and generate your manifest:


<Tabs>
<Tab title="Base Build" icon="star">
## Option 1: Base Build Preview Tool

1. Visit **[Base.dev](https://base.dev)** and sign in with your Base account.
2. Open **Preview → Account Association**.
3. Enter your Mini App domain in the App URL field.
4. Click **Submit**. You should see a notification that you should verify your app ownership. Click **Verify → Sign**.
5. Follow the on-screen instructions to sign the message in your wallet.
6. Click **Copy** to copy the generated `accountAssociation` object.
7. Paste it into your project’s `farcaster.json` under `accountAssociation`.
8. Redeploy your application to production.

You should now see three green check marks indicating successful signing.

<img
src="/images/base-build/basedev-manifest-success.png"
alt="Main dashboard interface"
height="300"
className="rounded-lg"
/>


</Tab>

<Tab title="Farcaster">
## Option 2: Farcaster Manifest Tool

1. Go to **[farcaster.xyz](https://farcaster.xyz)** and log in.
2. Navigate to **Developers → Manifest Tool**.
3. Enter your domain (exclude `https://` and trailing slashes).
4. Click **Refresh** to fetch your app.
5. Select **Generate Account Association**.
6. Copy the generated object.
7. Paste it into your project’s `farcaster.json` under `accountAssociation`.
8. Redeploy your application to production.

You should now see green check marks indicating successful signing.

<img
src="/images/base-build/farcaster-manifest-success.png"
alt="Main dashboard interface"
height="300"
className="rounded-lg"
/>
</Tab>
</Tabs>

## Example Manifest


Here’s a simplified example of what a `farcaster.json` could look like from the [Base Camp Mini App](https://basecamp25.app/.well-known/farcaster.json):

```json
{
"accountAssociation": {
"header": "<generated-header>",
"payload": "<generated-payload>",
"signature": "<generated-signature>"
},
"miniapp": {
"version": "1",
"name": "Basecamp 2025", // App name
"description": "Access and manage your experience @ Basecamp",
"iconUrl": "https://basecamp25.app/icon.png", // App icon
"homeUrl": "https://basecamp25.app", // Landing page
"canonicalDomain": "basecamp25.app", // Must match your domain
"requiredChains": ["eip155:8453"], // Chains your app supports
"tags": ["basecamp", "miniapp"], // Optional tags
"requiredCapabilities": [ // Capabilities your app needs
"actions.ready",
"actions.signIn"
]
}
}
```


2 changes: 1 addition & 1 deletion docs/mini-apps/quickstart/launch-checklist.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Authenticate when it unlocks value, not before. Fast, optional sign‑in keeps m

Your manifest powers saving, discovery, and rich embeds. A strong manifest includes complete fields, valid assets, and `noindex: true` during testing.

<Card title="Manifest" icon="file" href="/mini-apps/features/manifest" />
<Card title="Sign Your Manifest" icon="signature" href="/mini-apps/features/sign-manifest" />

## Embeds & Previews

Expand Down