Open jnaviask opened 9 months ago
Yes this is great, let's make sure to extend exploration to potential wallet interactions, buy sell stake.
Also question re session key infra @raykyri should / could chime in here. how our address model interacts with theirs
These are scratch thoughts for frame product surface area:
Open Q:
As we add more actions to threads, we should be mindful of what we (can) make available via the Thread Frame.
We should establish a permalink standard for polls/other thread cards. @zakhap
to add to what @zakhap said, would it be possible for the poll to be such that users can only vote if they are signed in on Common and part of the community that posted the poll? From reading the above seems possible but just confirming
to add to what @zakhap said, would it be possible for the poll to be such that users can only vote if they are signed in on Common and part of the community that posted the poll? From reading the above seems possible but just confirming
@sachben91 All polls on Common currently require the user to be signed in and part of the poll's community. There's no way to do otherwise. The idea in my original proposal is we simply create accounts automatically for Farcaster users when they attempt to take action on content from Common.
What should show up on the frame? In response to @zakhap
In response to @sachben91 / @jnaviask
We could gate in the backend on the frame, would require it to be checked server side, but technically it's just a POST request, and our TBC / gating mechanism should work as expected on the backend as long as that FC address has the token, and per jake, we've already created that address as use on our side
Adding another request from @sachben91 here: https://commonxyz.slack.com/archives/C06AE3NB5V1/p1706718139428219
@jnaviask et all:
https://www.notion.so/buildcommon/Farcaster-Common-Frame-s-cb75c2d5d3784f44a4dbf5cedc965743?pvs=4
please see this, I drafted this!
Just want to note some technical discovery here. There are 2 main constraints I think we need to consider/work with here:
I think for (1) we would need to consider which actions wouldn't be cumbersome to click through cards and wait for a http request to complete for each input.
To expand on (2) more - When I signed up for warpcast I let the app(which is technically considered a wallet in docs) set up a new seed phrase/address for me. warpcast suggests this to all users and sponsors gas if the users follow this path. Also pretty crazy to expect users to import their seed phrase into the app in the first place to use their hot eth address if wanted(this obv is a tech constraint/not their problem to fix)
That said I wonder how many users on warpcast are using the same address they would for example have linked to a common account? Not many new users would be my guess.
Another issue arises here too if we think of having users of warpcast connect their custody address to their existing common account as idt theres any way to push a SIWE request to the warpcast wallet and the only other solution would be to have them import their warpcast key into MM and sign which is unlikely to convert many users.
All that said the frame I linked above is somehow using warpcasts "Connected Accounts" feature to resolve a farcaster custody address(clicker of the frame) to one of their connected accounts. I haven't found how to do this yet but its def not at the frame level so I assume they're using Warpcasts/some API. So I think the best way to enable some of our address dependent features is to:
Altogether I think creating deeplinks/links to specific places in the app and relying on their current signed in session probably works better long term
Using an API like this, probably this one in particular allows us to resolve farcaster addresses to connected hot wallet addresses: https://docs.neynar.com/reference/lookup-user-by-custody-address
From that point as mentioned above only constraint is that the user has connected on farcaster
Also this(https://docs.neynar.com/reference/feed) for bridging
Do you have point estimates for each potential frame? Or how best to break down the work?
Sent via Superhuman iOS @.***>
On Tue, Feb 6 2024 at 5:40 PM, Ian Rowan @.***> wrote:
Using an API like this, probably this one in particular allows us to resolve farcaster addresses to connected hot wallet addresses: https://docs.neynar.com/reference/lookup-user-by-custody-address
From that point as mentioned above only constraint is that the user has connected on farcaster
— Reply to this email directly, view it on GitHub https://github.com/hicommonwealth/commonwealth/issues/6505#issuecomment-1930891431, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABIWMHPQDSBKAYOBB57SHGLYSKWPTAVCNFSM6AAAAABCRZ5COCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMZQHA4TCNBTGE . You are receiving this because you were mentioned.Message ID: @.***>
Description
Farcaster recently released frame support, which allows for small apps to be embedded within a Farcaster post.
This seems like a great opportunity to enhance support for Common to allow for Farcaster virality that drives mutual growth and engagement. The basic idea will be to have a Common Frame that displays some aspect of the Common site, and uses the metadata from the frame to make interactions with Common easy. The two main pieces that may be worth investigating are (1) Content on Common (i.e. threads and comments), and (2) Communities on Common.
Technical Details
We will make the following assumptions. A Farcaster post with frame has access to:
So the most basic frame that we can conceptualize would involve the following flow:
We can also see that a simplified version of this flow could work for a community (i.e. some info about community metadata + a button to auto-join the community).
How can this work? I propose the following flow:
Please suggest any modifications or recommendations with a particular eye to security considerations. It may be worth building the "join" flow first, as it's a simpler flow that uses effectively the same logic, but note that we will want to use that same logic for activating content creation actions as well.
Deliverables
Timebox
2 days (minimum; may need extension given scope of project).