# Farcaster Mini Apps ## Docs - [Blog](/blog) - [Why Farcaster Doesn't Need OAuth 2.0](/blog/oauth): OAuth exists to let three separate parties (user → platform → third-party app) establish mutual trust. Farcaster is built on a decentralized architecture that collapses this triangle: - [Getting Started](/docs/getting-started): Mini apps are web apps built with HTML, CSS, and Javascript that can be discovered and used within Farcaster clients. You can use an SDK to access native Farcaster features, like authentication, sending notifications, and interacting with the user's wallet. - [Specification](/docs/specification): A Mini App is a web application that renders inside a Farcaster client. - [Authenticating users](/docs/guides/auth): ![signing in a user](/sign_in_preview.png) - [App Discovery & Search](/docs/guides/discovery): Making your Mini App discoverable is crucial for reaching users in the Farcaster ecosystem. This guide covers how to ensure your app is correctly indexed and visible in our mini apps catalogue. - [Migrating to a new domain](/docs/guides/domain-migration): While Mini Apps are designed to be associated with a stable domain, there are times when you may need to migrate your app to a new domain. This could be due to rebranding, domain expiration, or other business reasons. - [Loading your app](/docs/guides/loading): When users open Mini Apps in Farcaster they are shown a branded splash screen instead of a blank loading page like they would in a browser. Once your interface is ready to show the splash screen can be hidden. - [Sending Notifications](/docs/guides/notifications): Reference: [Notifications Spec](/docs/specification#notifications) - [Publishing your app](/docs/guides/publishing): Publishing Mini Apps involves providing information like who developed the app, how it should be displayed, and what its capabilities are. - [Share Extensions](/docs/guides/share-extension): Share extensions allow your Mini App to appear in the Farcaster share sheet, enabling users to share casts directly to your app. When a user shares a cast to your Mini App, it opens with the cast context, allowing you to provide rich, cast-specific experiences. - [Sharing your app](/docs/guides/sharing): Mini Apps can be shared in social feeds using special embeds that let users interact with an app directly from their feed. - [Interacting with Solana wallets](/docs/guides/solana): Mini Apps can interact with a user's Solana wallet without needing to worry about popping open "select your wallet" dialogs or flakey connections. - [Mini App URLs](/docs/guides/urls): Mini Apps have a canonical URL that can be used to share across social feeds and web sites. The URL format is as follows: - [Interacting with Ethereum wallets](/docs/guides/wallets): Mini Apps can interact with a user's EVM wallet without needing to worry about popping open "select your wallet" dialogs or flakey connections. - [Back Navigation](/docs/sdk/back): Integrate with a back navigation control provided by the Farcaster client. - [What's New](/docs/sdk/changelog): Moved Quick Auth out of experimental and enhanced functionality: - [Context](/docs/sdk/context): When your app is opened it can access information about the session from `sdk.context`. This object provides basic information about the user, the client, and where your app was opened from: - [Detecting chains & capabilities](/docs/sdk/detecting-capabilities): Mini Apps are rendered within "hosts" inside web and mobile apps. Not all hosts support the same feature set, but some Mini Apps might require specific features. - [Client Events](/docs/sdk/events): When a user interacts with your app events will be sent from the Farcaster client to your application client. - [Haptics](/docs/sdk/haptics): Provides haptic feedback to enhance user interactions through physical sensations. The haptics API includes three methods for different types of feedback: impact, notification, and selection. - [isInMiniApp](/docs/sdk/is-in-mini-app): Determines if the current environment is a Mini App context by analyzing both environment characteristics and communication capabilities. - [Wallet](/docs/sdk/solana): The SDK enables Mini Apps to interact with a user's Solana wallet through [Wallet Standard](https://github.com/anza-xyz/wallet-standard/). - [Ethereum wallet](/docs/sdk/wallet): ![users taking onchain action from app](/transaction-preview.png) - [addMiniApp](/docs/sdk/actions/add-miniapp): Prompts the user to add the app. - [close](/docs/sdk/actions/close): Closes the mini app. - [composeCast](/docs/sdk/actions/compose-cast): Open the cast composer with a suggested cast. The user will be able to modify the cast before posting it. - [openUrl](/docs/sdk/actions/open-url): Opens an external URL. - [ready](/docs/sdk/actions/ready): Hides the Splash Screen. Read the [guide on loading your app](/docs/guides/loading) for best practices. - [sendToken](/docs/sdk/actions/send-token): Open the send form with a pre-filled token and recipient. The user will be able to modify the send before executing the transaction. - [signIn](/docs/sdk/actions/sign-in): Request a [Sign in with Farcaster (SIWF)](https://docs.farcaster.xyz/developers/siwf/) credential from the user. - [swapToken](/docs/sdk/actions/swap-token): Open the swap form with pre-filled tokens. The user will be able to modify the swap before executing the transaction. - [viewCast](/docs/sdk/actions/view-cast): Open a specific cast in the Farcaster client. This navigates the user to view the full cast with its replies and reactions. - [viewProfile](/docs/sdk/actions/view-profile): Displays a user's Farcaster profile. - [viewToken](/docs/sdk/actions/view-token): Displays a token - [quickAuth.fetch](/docs/sdk/quick-auth/fetch): Make a [Fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch) request with `Authorization` header set to `Bearer ${token}` where token is a Quick Auth session token. - [quickAuth.getToken](/docs/sdk/quick-auth/get-token): Request a signed JWT from a [Farcaster Quick Auth Server](https://github.com/farcasterxyz/protocol/discussions/231). - [Quick Auth](/docs/sdk/quick-auth): Quick Auth is a lightweight service built on top of Sign In with Farcaster that makes it easy to get an authenticated session for a Farcaster user. - [quickAuth.token](/docs/sdk/quick-auth/token): Returns an active Quick Auth session token when present.