Brainstorming: Links, badges and other relationship types #233
vrypan
started this conversation in
FIP Stage 1: Ideas
Replies: 1 comment 4 replies
-
I'm not sure we should overload Links, esp. if the user has to "accept" the badge. This actually feels similar to open ended attestations instead of the fixed ones we currently have with #199. One of the options we considered for attestations is to have it's own datatype (like Links or Verifications). With that you could do the required "counter-signature" from the fid providing the attesation/badge within the body of the same message. |
Beta Was this translation helpful? Give feedback.
4 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
The following is triggered by a request to have some kind of badges that has been expressed in many occasions. I also think that Links can be used (or even extended) to express more relation types than "follow".
Treating badges as relationships.
A badge is a relationship between two entities. One entity offers the badge, and an other entity has to accept it in some way.
Using Links to express badges
One way to express this relationship on Snapchain, would be for
Link
message withtype="badge"
andtarget_fid=FID2
Link
message withtype="accbadge"
(accept badge) andtarget_fid=FID1
A client can represent this relationship as a badge, using
FID1.USER_DATA_TYPE_PFP
on the profile page ofFID2
.This approach is simple, in the sense that it does not require changes to the protocol. It should also work with
LinkCompactStateBody
without changes.The limitation is that each badge requires a separate FID that offers it. So if Farcaster wanted to offer two badges, for
Pro
andProMax
, each one of the badges would have to be offered by a separate FID.However, many existing groups and teams on Farcaster could use this from day one. For example, Purple could offer a badge to all Purple holders, and update the badge status whenever the NFT is transferred.
Possible extensions
(less-than-half-baked ideas, that may or may not be applicable)
type=badge
, treat anytype=badge*
as a badge. This would allow a single FID to offer multiple badges, asbadgepro
,badgepro2
, etc. But they will all have to be presented using the same icon (FID1.USER_DATA_TYPE_PFP
)Link
message to include anicon
property that contains the URL of the badge. This can be very tricky, and increase storage requirements, sharing it in case it triggers more ideas.Link.type
astype=badge<index>
and introduce a newUSER_DATA_TYPE_BADGES
that accepts a list of image URLs.Beta Was this translation helpful? Give feedback.
All reactions