------------------------------------------------------------
commit 6016b2f2c393fa0eca582c93ec38b8670b45d973
Author: ffff:72.234.190.31 <ffff:72.234.190.31@hub.scroll.pub>
Date: Mon Dec 2 14:13:47 2024 +0000
updated index.scroll
diff --git a/index.scroll b/index.scroll
index 5bfb76a..2f1d4be 100644
--- a/index.scroll
+++ b/index.scroll
@@ -172,9 +172,96 @@ id Unique ID. Required. Reported to the frame. "do-yoink"
url Handler URL. Required. "https://yoink.party/trigger-handler"
name Name override. Optional, defaults to FrameConfig.name. "View Leaderboard"
+# Frame manifest caching
+Farcaster clients may cache the frame manifest when scraping embeds, but should provide a mechanism for refreshing the manifest file.
+# Frame UI Specifications
+Header A header is rendered above the frame and includes the name and author which must be specified in the manifest. The header is rendered whenever the app frame is launched.
+
+Splash Screen A splash screen is shown as soon as the app is launched and the icon and background must be specified in the frame manifest or embed meta tags. The frame can hide the splash screen once loading is complete.
+
+Size & Orientation A frame should be rendered in a vertical modal. Mobile frame sizes will be dictated by device dimensions while web frame sizes will be set to 424x695px.
+
+# Client SDK API
+
+code
+ type LaunchContext =
+ | CastEmbedLaunchContext
+ | NotificationLaunchContext
+
+code
+ > Farcaster.context.location
+ {
+ type: "cast_embed",
+ cast: {
+ fid: 3621,
+ hash: "0xa2fbef8c8e4d00d8f84ff45f9763b8bae2c5c544",
+ text: "New Yoink just dropped:",
+ embeds: ["https://yoink.party/frames"]
+ }
+ }
+
+code
+ type Cast = {
+ fid: number;
+ hash: string;
+ text: string;
+ embeds: string[];
+ mentions: Mention[];
+ };
+
+ type CastEmbedLaunchContext = {
+ type: 'cast_embed';
+ cast: Cast;
+ };
+
+# Notification
+
+ > Farcaster.context.location
+ {
+ type: "notification",
+ notification: {
+ title: "Yoinked!",
+ body: "horsefacts captured the flag from you.",
+ id: "f7e9ebaf-92f0-43b9-a410-ad8c24f3333b"
+ }
+ }
+
+code
+ type NotificationLaunchContext = {
+ type: 'notification';
+ notification: {
+ title: string;
+ body: string;
+ id: string;
+ };
+ };
+
+# context user
+
+code
+ type User = {
+ fid: number;
+ username?: string;
+ displayName?: string;
+ pfp?: string;
+ bio?: string;
+ location?: {
+ placeId: string;
+ description: string;
+ },
+ custodyAddress: string;
+ verifiedAddresses: {
+ ethereum: string[];
+ solana: string[];
+ }
+ connectedAccounts: {
+ platform: string;
+ username: string;
+ }[];
+ };
------------------------------------------------------------
commit 7a49219c12ba54de03d92c0f7e0d540eda8b8bfc
Author: ffff:72.234.190.31 <ffff:72.234.190.31@hub.scroll.pub>
Date: Mon Dec 2 14:11:10 2024 +0000
updated index.scroll
diff --git a/index.scroll b/index.scroll
index 0e87440..5bfb76a 100644
--- a/index.scroll
+++ b/index.scroll
@@ -166,6 +166,12 @@ code
name?: string
}
+Attribute Description Example
+type The type of trigger, cast_action or composer_acton. Required. "cast-action"
+id Unique ID. Required. Reported to the frame. "do-yoink"
+url Handler URL. Required. "https://yoink.party/trigger-handler"
+name Name override. Optional, defaults to FrameConfig.name. "View Leaderboard"
+
------------------------------------------------------------
commit 942fd2b711137b7605db1f9d043146ce0967ae96
Author: ffff:72.234.190.31 <ffff:72.234.190.31@hub.scroll.pub>
Date: Mon Dec 2 14:11:04 2024 +0000
updated index.scroll
diff --git a/index.scroll b/index.scroll
index 9c6dd67..0e87440 100644
--- a/index.scroll
+++ b/index.scroll
@@ -143,6 +143,31 @@ code
splashBackgroundColor Hex color code. Optional. "#eeeee4"
webhookUrl The URL to which clients will POST events. Optional. "https://yoink.party/webhook"
+# Frame Invocation
+Frames may be invoked in the following ways:
+Method Description Context
+global Called when the app is invoked from the app launcher or other unspecified context, only when homeUrl is set. Loads the app’s homeUrl. None
+embed Called when the frame is invoked from an embed in a feed or direct cast. Loads the url specified in the embed metadata Cast hash, embed URL, embed type (feed or direct cast), see below
+notification Called when a user clicks on a frame notification. Loads the targetUrl specified in the notification payload. Notification ID, see below
+
+# Triggers
+Triggers will allow a user to launch into your Frame from different places in a Farcaster application. These will eventually replace "cast actions" and "composer actions." See "Feature: Triggers" in the Appendix for details.
+
+code
+ type TriggerConfig = {
+ type: 'cast_action',
+ id: string,
+ url: string,
+ name?: string
+ } | {
+ type: 'composer_action',
+ id: string,
+ url: string,
+ name?: string
+ }
+
+
+
------------------------------------------------------------
commit b11e27c7f5cbc4e499c23719734702407d01fe6c
Author: ffff:72.234.190.31 <ffff:72.234.190.31@hub.scroll.pub>
Date: Mon Dec 2 14:10:11 2024 +0000
updated index.scroll
diff --git a/index.scroll b/index.scroll
index 4e41363..9c6dd67 100644
--- a/index.scroll
+++ b/index.scroll
@@ -133,5 +133,17 @@ code
webhookUrl?: string
};
+//
+ Attribute Description Example
+ version Manifest version. Required. "0.0.0"
+ name App name. Required. "Yoink!"
+ iconUrl 200x200px App icon. Must be less than 1MB. Required. "https://yoink.party/img/icon.png"
+ homeUrl Frame default launch URL. Optional. "https://yoink.party/"
+ splashImageUrl 200x200px splash image. Must be less than 1MB. Optional. "https://yoink.party/img/splash.png"
+ splashBackgroundColor Hex color code. Optional. "#eeeee4"
+ webhookUrl The URL to which clients will POST events. Optional. "https://yoink.party/webhook"
+
+
+
------------------------------------------------------------
commit b8120120ac70b3992871bc3129c1d9aee75e01b2
Author: ffff:72.234.190.31 <ffff:72.234.190.31@hub.scroll.pub>
Date: Mon Dec 2 14:09:50 2024 +0000
updated index.scroll
diff --git a/index.scroll b/index.scroll
index 29244c0..4e41363 100644
--- a/index.scroll
+++ b/index.scroll
@@ -119,4 +119,19 @@ code
[]
The account association links the domain to a Farcaster FID. The signature must be a signed JSON Farcaster Signature from the FID's custody address with the following payload:
> { domain: string }
+ [] The domain must match the domain the manifest is being served from.
+
+[] Frame config
+code
+ type FrameConfig = {
+ version: string;
+ name: string;
+ homeUrl?: string
+ iconUrl: string;
+ splashImageUrl?: string;
+ splashBackgroundColor?: string;
+ webhookUrl?: string
+ };
+
+
------------------------------------------------------------
commit a392648aabe56da3599d830a1d11f34e726781c3
Author: ffff:72.234.190.31 <ffff:72.234.190.31@hub.scroll.pub>
Date: Mon Dec 2 14:09:21 2024 +0000
updated index.scroll
diff --git a/index.scroll b/index.scroll
index 9932740..29244c0 100644
--- a/index.scroll
+++ b/index.scroll
@@ -116,4 +116,7 @@ code
triggers?: TriggerConfig[];
};
+[]
+ The account association links the domain to a Farcaster FID. The signature must be a signed JSON Farcaster Signature from the FID's custody address with the following payload:
+ > { domain: string }
------------------------------------------------------------
commit 1520ce5b8b8ddcd119b42c42d5f947036bc62c66
Author: ffff:72.234.190.31 <ffff:72.234.190.31@hub.scroll.pub>
Date: Mon Dec 2 14:08:42 2024 +0000
updated index.scroll
diff --git a/index.scroll b/index.scroll
index 8453085..9932740 100644
--- a/index.scroll
+++ b/index.scroll
@@ -104,3 +104,16 @@ frameEmbedParser
button.action.splashImage 200x200px splash image. Must be less than 1MB "https://yoink.party/img/splash.png"
button.action.splashBackgroundColor Hex color code "#eeeee4"
+[] Frame manifest:
+code
+ type FarcasterManifest = {
+ accountAssociation: {
+ header: string; // base64url encoded JFS header
+ payload: string; // base64url encoded payload containing a single property `domain`
+ signature: string; // base64url encoded signature
+ };
+ frame: FrameConfig;
+ triggers?: TriggerConfig[];
+ };
+
+
------------------------------------------------------------
commit 195a58f8355dd8ecf6632354d63ab421ff155e32
Author: ffff:72.234.190.31 <ffff:72.234.190.31@hub.scroll.pub>
Date: Mon Dec 2 14:08:10 2024 +0000
updated index.scroll
diff --git a/index.scroll b/index.scroll
index 158f203..8453085 100644
--- a/index.scroll
+++ b/index.scroll
@@ -93,5 +93,14 @@ cast
frameEmbedParser
extends abstractScrollParser
-
+//
+ Attribute Description Example
+ imageUrl Frame image. Must be 1:1.91 aspect ratio. Must be less than 10 MB. "https://yoink.party/img/start.png"
+ button.text Button text "Yoink Flag"
+ button.action.type Action type. Must be launch. "launch"
+ button.action.name App name "Yoink!"
+ button.action.icon 200x200px App icon. Must be less than 1MB. "https://yoink.party/img/icon.png"
+ button.action.url Frame launch URL "https://yoink.party/"
+ button.action.splashImage 200x200px splash image. Must be less than 1MB "https://yoink.party/img/splash.png"
+ button.action.splashBackgroundColor Hex color code "#eeeee4"
------------------------------------------------------------
commit 4195f978e92b504e2e61db2fe2f1e002730fad56
Author: ffff:72.234.190.31 <ffff:72.234.190.31@hub.scroll.pub>
Date: Mon Dec 2 14:07:44 2024 +0000
updated index.scroll
diff --git a/index.scroll b/index.scroll
index cd2f895..158f203 100644
--- a/index.scroll
+++ b/index.scroll
@@ -90,6 +90,8 @@ cast
}
}
+frameEmbedParser
+ extends abstractScrollParser
------------------------------------------------------------
commit d90119f2135e17d97d024e10ecb2889316ca6667
Author: ffff:72.234.190.31 <ffff:72.234.190.31@hub.scroll.pub>
Date: Mon Dec 2 14:07:04 2024 +0000
updated index.scroll
diff --git a/index.scroll b/index.scroll
index f1e468f..cd2f895 100644
--- a/index.scroll
+++ b/index.scroll
@@ -73,6 +73,22 @@ cast
[] Frames will follow semantic versioning and frames must declare the version that they support. Apps will choose to render frames based on the versions they can support.
+[] A frame URL must have a FrameEmbed in a serialized form in the fc:frame meta tag on the headers. When this URL is rendered in a cast, the image is displayed in a 1.9:1 ratio with a button underneath. Clicking the button will open an app frame to the provided target url and use the splash page to animate the transition.
+ code <meta name="fc:frame" content="<stringified FrameEmbed JSON>" />
+ code
+ type FrameEmbed = {
+ imageUrl: string;
+ button: {
+ title: string;
+ action: {
+ type: 'launch_frame';
+ name: string;
+ url: string;
+ splashImageUrl: string;
+ splashBackgroundColor: string;
+ }
+ }
+ }