Bringing Frames (interactive mini apps) to Push Network

Pre-PIP:1

Author(s): Siddesh

Discussions: NA

Created: 5/17/2024

Simple Summary

Bringing Frames (mini-web apps embedded) support to Push Dapp and all Dapps using Push Chat. This implementation can open up a myriad of possibilities for Push Chat usage.

Abstract

Frames enable developers and other projects to build a mini-web-app, which, once shared in a Push Chat, will be embedded as an interactive, rich mini app that anyone can interact with from within the chat. With this implementation of Frames, developers have the flexibility to do a variety of things, including but not limited to:

  • Letting users interact with their contracts, such as performing actions on-chain in any of the supported chains in Push Dapp.
  • Allowing Frames developers to build gamified, rich apps with user contexts, enabling powerful utilities and actions.
  • Letting users directly use their products without having to leave the Push Chat client.

Motivation

Frames is a new technology introduced by the Farcaster team in Warpcast. Initially, it had a remarkably positive impact on its user base, enabling developers to integrate their apps seamlessly within a social media platform. This allows users to access these apps without leaving the platform.

With numerous consumer applications available today, some of these apps can benefit greatly from being usable within an existing application with a larger user base. From a user standpoint, being able to make a swap on Uniswap and send a tip to someone within a social media app without leaving it is amazing, as it eliminates the need to switch between apps.

Frames has opened up a plethora of use cases and has the potential to become a significant innovation, with thousands of frames being built every day to solve various consumer problems. With Frames support in Push, chat groups become very exciting, allowing users to create a Push Channel from within a chat or share and play an adventure game or chess directly within the chat client itself and much more.

Specification

Overview

Frames is essentially a sanitized version of the OG protocol standard (developed by Facebook in 2010) used by almost all websites today to embed previews of other websites. Frames complement this by adding additional meta tags to a web app, which can then be processed by a client to embed the link as a Frame.

A Frame can perform several functions and consists of three components: an image, an optional text input, and up to four buttons. A web link can be embedded as a Frame if it follows the Open Frames Standard or the Farcaster Frame Standard, which have specific requirements for a valid Frame.

When there is a link in a message, the client fetches the metadata of the web link and parses it to extract the Frame-specific tags (according to the Open Frames or Farcaster specifications). If the link is valid, it can be embedded with the provided image and button information from the Frame.

Once embedded in the chat, every interaction with it triggers a POST request to the Frames server with information about the interaction. The Frames server processes this and returns a new Frame, which is then parsed and embedded for the user to continue the interaction.

A button in a Frame can have special actions, allowing the Push Client to understand how to process user interactions. Some of these actions include

Subscribe Action: This action lets the connected user subscribe to the channel provided in the Frame.

Transaction Action: Frames can have buttons that create on-chain transactions. The Frame’s developer can set a button as a transaction trigger, prompting the Push Client to send a GET request to the Frame to fetch transaction details. The Push Client then generates a transaction and asks the user to sign or reject it.

Frames offer a rich feature set, enabling context sharing between the connected user and the Frames server. This capability makes gaming and other use cases possible. Additionally, a Frame can request input from the interacting user.

References:

  1. Open Frames Standard
  2. Farcaster Frame Spec - [couldn’t add more links due to platform restriction]
    Rationale

The introduction of Frames support within the Push Dapp and all Dapps using Push Chat is driven by several key considerations. Frames technology, as developed by the Farcaster team, has demonstrated significant potential in enhancing user engagement and developer flexibility within social media platforms. By integrating Frames, Push Chat can leverage this innovation to offer a more seamless and interactive experience for its users.

User Experience:

The primary motivation for this implementation is to enhance the user experience by allowing users to interact with mini-web apps directly within the Push Chat client. This eliminates the need to switch between different applications, thereby streamlining user interactions and increasing convenience.

Developer Flexibility:

Frames provide developers with the ability to create rich, interactive mini-apps that can be embedded within chats. This opens up opportunities for developers to build diverse applications, from on-chain transaction interfaces to interactive games, all accessible within a single platform. By Push following Open Frames Standard, developers can build cross functional frames which can work in multiple apps.

Increased Engagement:

By integrating Frames, Push Chat can significantly increase user engagement. Users can perform various actions, such as subscribing to channels, making on-chain transactions, or participating in interactive content, without leaving the chat environment. This continuous engagement is likely to boost user retention and satisfaction.

Implementation

Adding support for Frames in Push UiWeb package and develop SDKs that are needed to help Frames Developers, like Frames Validator Package.

Temperature Check

NA

6 Likes

Hey @0xsiddesh , welcome to the forum! Adding support for frames is an excellent idea for the Push dapp, as frames have become one of the most exciting parts of web3 social. Native support for frames would be great for Push. Enhanced user engagement and developer flexibility will allow for a lot more people to get onboarded into the Push Ecosystem. However, I do have some questions including:

Is it possible to create frames for Push, too? Can it be shared on other platforms, such as a frame that allows you to opt in to a certain push channel or a frame that allows you to join a token-gated group chat?

How might embedding Frames affect the performance and load times of Push Chat? And, will there be any user testing conducted to gather insights and improve the Frames feature before full deployment?

4 Likes

Frames have ushered in a new dimension of interactivity on the web. Providing support for Frames on Push will certainly enrich the functionality of Push dApps and create new and exciting user experiences. essentially, we would be empowering developers to build communication/interaction legos on Push Protocol. this reinforces the role of Push Protocol as a driving force for web3/decentralized communications. and i’m all for this :bell:

4 Likes

Hi @SixtyKeys Thanks for your welcome.

To answer your questions,

  • Frames are known for its simplicity in terms of development and usage, by implementing Frames in Push, we strive to make sure that any Frame built using the Open Frames Standard and/or Farcaster Frame Spec will be supported natively in Push Network and its clients.
  • Perhaps this is the exciting part, We can now have Frames that can be used to enable Push Channel opt-ins, creating a new channel all from Chat itself!

  • Frames like Channel opt-ins can work natively inside of any Push Client at the moment since its an off chain action.

  • Frames won’t have any effect on the speed and performance of a client since all the Frames in a chat loads up asynchronously once the chat loads up.
  • We can definitely work with the community to test out the feature before launch.
4 Likes

Thank you for the quality responses, friend! I can’t wait to see the introduction of frames within the Push Ecosystem. :purple_heart::bell:

4 Likes

Great Idea @0xsiddesh ! Providing support for Frames will create superb User Experience.

3 Likes

I agree because incorporating frames will empower developers with more interactive tools which will open doors for some seriously innovative communication experiences within Push dApps.

This will also make Push Protocol an even bigger player in the Web3 communication game!

3 Likes

This Pre-PIP, the first ever, has 3 more days max of the comment period before it moves forward to the temperature check vote to gauge community sentiment.

Thank you to everyone who has weighed in so far!

4 Likes

This Pre-PIP will enter the temperature check stage to gauge community sentiment by tomorrow!

Thank you all for your participation so far in the first Pre-PIP ever.

Every voice and vote matters.

6 Likes

Final Temp Check

This poll will solicit final feedback from the community on whether the Push Foundation should proceed with implementing the Frames integration.

Bring Frames to Push network :bell:
  • FOR
  • AGAINST
0 voters