Add a new fc:frame:button:$idx:action
type, link
.
Add a new fc:frame:button:$idx:target
prop.
<meta property="fc:frame:button:1" content="Protocol Docs" />
<meta property="fc:frame:button:1:action" content="link" />
<meta property="fc:frame:button:1:target" content="<https://github.com/farcasterxyz/protocol>" />
External links MUST use the https://
or http://
protocols.
Apps MUST validate the target URL protocol and ignore invalid links.
Frames MUST specify both an action
and a target
property for the same button index if action type is link
. Apps MUST reject frames with missing properties as malformed and fall back to the OpenGraph embed.
Like redirect actions, apps MUST visually indicate that the button will open a new URL and SHOULD show appropriate warnings to the user about untrusted content.
Apps MUST NOT provide a frame signature packet to external links. Frames that want to redirect or return dynamic URLs based on frame data should use post_redirect
actions, or handle a frame action and return a new frame with static links.
Here’s Varun’s dev call frame, simplified to use external links. It’s now simple enough that it requires no server side handlers, just the initial frame:
<head>
<meta property="og:title" content="FC Dev Call" />
<meta property='og:image' content="<https://fc-dev-call.replit.app/image>" />
<meta property="fc:frame" content="vNext" />
<meta property="fc:frame:image" content="<https://fc-dev-call.replit.app/image>" />
<meta property="fc:frame:button:1" content="Notes" />
<meta property="fc:frame:button:1:action" content="link" />
<meta property="fc:frame:button:1:target" content="<https://warpcast.notion.site/Feb-1st-934e190578144aba8273b2bbdc29e5ab>" />
<meta property="fc:frame:button:2" content="Calendar" />
<meta property="fc:frame:button:2:action" content="link" />
<meta property="fc:frame:button:2:target" content="<https://calendar.google.com/calendar/u/0?cid=NjA5ZWM4Y2IwMmZiMWM2ZDYyMTkzNWM1YWNkZTRlNWExN2YxOWQ2NDU3NTA3MjQwMTk3YmJlZGFjYTQ3MjZlOEBncm91cC5jYWxlbmRhci5nb29nbGUuY29t>" />
<meta property="fc:frame:button:3" content="Zoom" />
<meta property="fc:frame:button:3:action" content="link" />
<meta property="fc:frame:button:3:target" content="<https://zoom.us/j/98052336425?pwd=aFYyRk9ZSDhqR1h5eVJENmtGSGo4UT09>" />
<meta property="fc:frame:button:4" content="Recordings" />
<meta property="fc:frame:button:4:action" content="link" />
<meta property="fc:frame:button:4:target" content="<https://www.youtube.com/playlist?list=PL0eq1PLf6eUeZnPtyKMS6uN9I5iRIlnvq>" />
</head>