Setup
- See the setup instructions in creating messages
Mentions
Users can be tagged in a cast with an @username mention (e.g. βHello @bob!β) which causes clients to send notifications. A mention is not included in the text of the cast. The target fid and the position of the mention in the text are specified in thementions and mentionPositions array, and are populated into the cast by clients at render-time.
Embeds
URLs can be embedded in the cast which instructs clients to render a preview. A cast can have up to 2 embeds which can each be up to 256 bytes long. No other validation is performed on embeds.Emoji
Emojis can be included directly in the text of a cast and be rendered by clients. Since an emoji character often takes up multiple bytes but renders as a single character, it has an impact on how mention positions and cast length should be calculated.Reply
A cast can be a reply to another cast, URL or NFT. A reply to another cast is treated as a thread, while a reply to a URL or NFT can be treated as a comment or a channel. The optional parentUrl property can be set to a URL or to an fid-hash value of the cast being replied to, as shown in th example below. See FIP-2 for more details on reply types.Channels
A cast can be sent into a channel, which instructs clients that it is related to a specific topic. Clients may choose to use this metadata in different ways, like grouping channel casts together or recommending them to certain users. A channel is simply aparentURL that is either a URL or NFT, which all clients recognize as a channel by loose consensus. There is no protocol level agreement on the list of channels yet, but the casts table in the replicator database can be used to get a list of commonly used channels.

