Skip to main content
A message is the fundamental data type in the Farcaster network. When an account takes an action like casting a public message, changing its profile, or verifying an Ethereum account, it generates a new message.

1. Message

The message is a protobuf that contains the data, its hash and a signature from the author.

1.1 MessageData

MessageData is a generic envelope that contains a type, fid, timestamp and network which must be present in all Farcaster messages. It also contains a body whose type is determined by the MessageType.

1.2 HashScheme

Type of hashing scheme used to produce a digest of MessageData

1.3 Signature Scheme

Type of signature scheme used to sign the Message hash

1.4 Message Type

Type of the MessageBody

1.5 Farcaster Network

Farcaster network the message is intended for

2. UserData

A UserData message represents user metadata (e.g. a profile picture url) .

2.1 UserDataBody

Body of a UserData message

2.2 UserDataType

Type of UserData message See FIP-196 for more information on Location. See FIP-19 for more information on Twitter/X and GitHub usernames.

3. Cast

A Cast message is a public post from a user.

3.1 CastAddBody

Adds a new Cast message.

Embed

3.2 CastRemoveBody

Removes an existing Cast message.

3.3 CastId

Identifier used to look up a Cast

4. Reaction

A Reaction message creates a relationship between an account and a cast. (e.g. like)

4.1 ReactionBody

Adds or removes a Reaction from a Cast

4.2 ReactionType

Type of Reaction A Link message creates a relationship between two users (e.g. follow)

5.1 LinkBody

Adds or removes a Link

6. Verification

A Verification message is a proof of ownership of something.

6.1 VerificationAddAddressBody

Adds a bi-directional signature proving that an fid has control over an address (supports multiple protocols).

6.2 VerificationRemoveBody

Removes a Verification of any type

7. Frame Action

Represents an action performed by a user on a frame. This message is not stored on the nodes and cannot be submitted, only validated.

7.1 FrameActionBody

A user action on a frame

8. Protocol

Type of protocol for addresses

9. CastType

Type of cast

10. LinkCompactStateBody

Compact state representation for links