Types
Accounts can publish five different kinds of messages to the network:| Type | Description | Example |
|---|---|---|
| Casts | Public messages that can be seen by anyone. | ”Hello world!” |
| Reactions | A relationship between an account and a cast. | Alice liked Bob’s cast. |
| Links | A relationship between two accounts. | Alice follows Bob. |
| Profile Data | Metadata about the account. | Profile picture, display name. |
| Verifications | A proof of ownership of something. | An Ethereum address. |
Storage
An account must pay rent to keep their messages on the Farcaster network. Charging rent prevents users from spamming the network. An account can rent a unit of storage by making an onchain transaction to the Storage Registry. A unit of storage costs $7 today, lasts for one year and lets each account store a certain number of messages of each type. The limits for each type today are:- 5000 Casts
- 2500 Reactions
- 2500 Links
- 50 Profile Data
- 50 Verifications
Deletion
An account can delete messages at any time by publishing a corresponding delete message. The delete message will remove the contents of the original message, leaving a tombstone in its place. A deleted message will still count towards the account’s storage limit until it expires by being pushed out by a newer message.Timestamps
Messages have timestamps which count seconds from the Farcaster Epoch, which began onJan 1, 2021 00:00:00 UTC. Using a recent epoch makes timestamps and messages much smaller, which is important for the network.
Timestamps are unverified and can be backdated by users, similar to a blog post. They cannot be more than 15 minutes into the future, as the network will reject such messages.
Resources
Specifications
- Messages - the atomic unit of change on Farcaster
- CRDTs - rules for keeping messages in sync on the network
- Storage Registry - contract to acquire storage units
APIs
- Get Casts - fetch an account’s casts from a Snapchain node
- Get Reactions - fetch an account’s reactions from a Snapchain node
- Get Links - fetch an account’s links or follows from a Snapchain node
- Get UserData - fetch an account’s profile data from a Snapchain node
- Submit Message - broadcast a message to the Snapchain network
- Validate Message - verify a message’s authenticity with a Snapchain node
- Storage Registry - Acquire or check storage units for an account
Tutorials
- Get casts - Get an account’s casts from a Snapchain node.
- Get profile - Get an account’s profile from a Snapchain node.
- Create common message types - Create casts, links, reactions and userdata.
- Create casts with advanced features - Create casts with embeds, emojis and mentions.

