Introduction
Snaps are simple, nimble apps embedded in Farcaster casts. They render in the feed and respond to user input — buttons, sliders, text — without executing any code on the client. A snap server returns JSON; the Farcaster client displays it.
Beta: This is all still in beta and may change significantly over the next few weeks or months.
Using Claude Code? Tell your agent to
use https://docs.farcaster.xyz/snap/SKILL.md to build me an app that
Learn
- Building a Snap — Ways to create a snap, from AI-assisted generation to manual implementation with the template.
- Integrating Snaps — How to serve snap JSON alongside your normal site
using content negotiation on the
Acceptheader. - Persistent State — The key-value store available on every snap handler invocation for persisting state between requests.
- Examples — Sample snap response payloads showing common UI patterns.
Reference
- Spec — The full HTTP protocol: content negotiation, request/response lifecycle, versioning, and validation rules.
- HTTP Headers —
Accept,Content-Type,Vary, andLinkfor snap responses and fallbacks. - Elements — All 16 components: display, data, container, and field types.
- Buttons — The
buttoncomponent, variants, layout, and how POST payloads are constructed when a user taps. - Actions — The 9 action types and their params.
- Effects — Page-level overlays (confetti, etc.) that fire on render.
- Constraints — Per-component validation limits and URL rules.
- Theme & Styling — How accent colors work and why snaps specify only a palette name rather than hex values.
- Color Palette — The named palette colors available for accent, progress bars, and bar charts.
- Authentication — How POST requests are authenticated with JSON Farcaster Signatures (JFS) and how servers verify them.
Agents
- Agents — Machine-readable docs, the skill file, and starting points for AI tools building or integrating snaps.
Contributing
- See the GitHub repo