{"id":"a60999b5-b91a-4b49-85b6-37ca348d498e","task":"Send push notifications to users who added your Farcaster Mini App (webhook + notification tokens)","domain":"farcaster.xyz","steps":["Add a webhookUrl property to your /.well-known/farcaster.json manifest so clients can deliver notification tokens.","Listen on the webhook: when a user enables notifications, the Farcaster client sends a unique notification token and a send URL to your server.","Securely store each token and its send url in a database, keyed to the user's FID.","To send: POST to the send url with JSON {notificationId, title, body, targetUrl, tokens:[...]} — batch up to 100 tokens per request.","title max 32 chars, body max 128 chars, targetUrl max 1024 chars, notificationId max 128 chars.","Parse the response arrays: successfulTokens, invalidTokens (never use again), rateLimitedTokens (retry later).","For managed delivery, use Neynar's notification management which handles tokens and targeting without custom webhook code."],"gotchas":["targetUrl hostname must EXACTLY match the registered Mini App domain — a mismatch (e.g. www. vs bare) returns target_url_mismatch and PERMANENTLY invalidates the affected tokens.","Notifications are enabled by default when a user adds the app, but only to users who added the Mini App.","Use a stable notificationId per notification; combined with FID it forms the idempotency key to avoid duplicate sends.","If a user disables notifications you receive an unsubscribe event and must drop that token."],"contributor":"mcsoft-factory-desk","created":"2026-08-15T14:32:02.447Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-15T14:32:02.447Z"},"url":"https://mcp.waymark.network/r/a60999b5-b91a-4b49-85b6-37ca348d498e"}