---
title: "Submit signed message"
method: POST
path: "/v1/submitMessage"
tags: ["Message"]
---

# Submit signed message

`POST /v1/submitMessage`

Submit a message to the Farcaster network.

## Response `200`

A successful response.

- Message — A Message is a delta operation on the Farcaster network that represents a state change. Messages are the fundamental unit of data in Farcaster and can represent various actions like: - Creating or removing casts (posts) - Adding or removing reactions - Following or unfollowing users - Updating profile data - Verifying Ethereum addresses Each message contains: - A MessageData object with the actual content - A hash of the content for integrity verification - A cryptographic signature to prove authenticity - The signer's public key for verification Messages are immutable once created and form an append-only log of all user actions on the network.
  - `data` union, required
    - MessageDataCastAdd — Common properties shared by all Farcaster message types. These properties provide essential metadata about the message's origin, timing, and network context.
      - `type` 'MESSAGE_TYPE_CAST_ADD' | 'MESSAGE_TYPE_CAST_REMOVE' | 'MESSAGE_TYPE_REACTION_ADD' | 'MESSAGE_TYPE_REACTION_REMOVE' | 'MESSAGE_TYPE_LINK_ADD' | 'MESSAGE_TYPE_LINK_REMOVE' | 'MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS' | 'MESSAGE_TYPE_VERIFICATION_REMOVE' | 'MESSAGE_TYPE_USER_DATA_ADD' | 'MESSAGE_TYPE_USERNAME_PROOF' | 'MESSAGE_TYPE_FRAME_ACTION' — Type of the MessageBody. - MESSAGE_TYPE_CAST_ADD: Add a new Cast - MESSAGE_TYPE_CAST_REMOVE: Remove an existing Cast - MESSAGE_TYPE_REACTION_ADD: Add a Reaction to a Cast - MESSAGE_TYPE_REACTION_REMOVE: Remove a Reaction from a Cast - MESSAGE_TYPE_LINK_ADD: Add a new Link - MESSAGE_TYPE_LINK_REMOVE: Remove an existing Link - MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS: Add a Verification of an Ethereum Address - MESSAGE_TYPE_VERIFICATION_REMOVE: Remove a Verification - MESSAGE_TYPE_USER_DATA_ADD: Add metadata about a user - MESSAGE_TYPE_USERNAME_PROOF: Add or replace a username proof - MESSAGE_TYPE_FRAME_ACTION: A Farcaster Frame action
      - `fid` integer, required — The unique identifier (FID) of the user who created this message. FIDs are assigned sequentially when users register on the network and cannot be changed.
      - `timestamp` integer, required — Seconds since Farcaster Epoch (2021-01-01T00:00:00Z). Used to order messages chronologically and determine the most recent state. Must be within 10 minutes of the current time when the message is created.
      - `network` 'FARCASTER_NETWORK_MAINNET' | 'FARCASTER_NETWORK_TESTNET' | 'FARCASTER_NETWORK_DEVNET', required — Farcaster network the message is intended for. - FARCASTER_NETWORK_MAINNET: Public primary network - FARCASTER_NETWORK_TESTNET: Public test network - FARCASTER_NETWORK_DEVNET: Private test network
      - `castAddBody` CastAddBody, required — Adds a new Cast
        - `embedsDeprecated` string[], required
        - `mentions` integer[], required
        - `parentCastId` CastId — A unique identifier for a cast (post) in the Farcaster network, consisting of the creator's FID and a hash of the cast's content. This combination ensures global uniqueness across all casts.
          - `fid` integer, required — The Farcaster ID (FID) of the user who created the cast. Required to uniquely identify the cast's author in the network.
          - `hash` string, required — A unique hash that identifies a specific cast within the creator's posts. Generated using HASH_SCHEME_BLAKE3 of the cast's content.
        - `parentUrl` string
        - `text` string, required
        - `mentionsPositions` integer[], required
        - `embeds` Embed[], required
          - union
            - CastEmbed
              - …
            - UrlEmbed
              - …
    - MessageDataCastRemove — Common properties shared by all Farcaster message types. These properties provide essential metadata about the message's origin, timing, and network context.
      - `type` 'MESSAGE_TYPE_CAST_ADD' | 'MESSAGE_TYPE_CAST_REMOVE' | 'MESSAGE_TYPE_REACTION_ADD' | 'MESSAGE_TYPE_REACTION_REMOVE' | 'MESSAGE_TYPE_LINK_ADD' | 'MESSAGE_TYPE_LINK_REMOVE' | 'MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS' | 'MESSAGE_TYPE_VERIFICATION_REMOVE' | 'MESSAGE_TYPE_USER_DATA_ADD' | 'MESSAGE_TYPE_USERNAME_PROOF' | 'MESSAGE_TYPE_FRAME_ACTION' — Type of the MessageBody. - MESSAGE_TYPE_CAST_ADD: Add a new Cast - MESSAGE_TYPE_CAST_REMOVE: Remove an existing Cast - MESSAGE_TYPE_REACTION_ADD: Add a Reaction to a Cast - MESSAGE_TYPE_REACTION_REMOVE: Remove a Reaction from a Cast - MESSAGE_TYPE_LINK_ADD: Add a new Link - MESSAGE_TYPE_LINK_REMOVE: Remove an existing Link - MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS: Add a Verification of an Ethereum Address - MESSAGE_TYPE_VERIFICATION_REMOVE: Remove a Verification - MESSAGE_TYPE_USER_DATA_ADD: Add metadata about a user - MESSAGE_TYPE_USERNAME_PROOF: Add or replace a username proof - MESSAGE_TYPE_FRAME_ACTION: A Farcaster Frame action
      - `fid` integer, required — The unique identifier (FID) of the user who created this message. FIDs are assigned sequentially when users register on the network and cannot be changed.
      - `timestamp` integer, required — Seconds since Farcaster Epoch (2021-01-01T00:00:00Z). Used to order messages chronologically and determine the most recent state. Must be within 10 minutes of the current time when the message is created.
      - `network` 'FARCASTER_NETWORK_MAINNET' | 'FARCASTER_NETWORK_TESTNET' | 'FARCASTER_NETWORK_DEVNET', required — Farcaster network the message is intended for. - FARCASTER_NETWORK_MAINNET: Public primary network - FARCASTER_NETWORK_TESTNET: Public test network - FARCASTER_NETWORK_DEVNET: Private test network
      - `targetHash` string, required — The unique hash identifier of the cast to be removed. Must be a cast that was previously created by the same FID specified in the message.
    - MessageDataReaction — Common properties shared by all Farcaster message types. These properties provide essential metadata about the message's origin, timing, and network context.
      - `type` 'MESSAGE_TYPE_CAST_ADD' | 'MESSAGE_TYPE_CAST_REMOVE' | 'MESSAGE_TYPE_REACTION_ADD' | 'MESSAGE_TYPE_REACTION_REMOVE' | 'MESSAGE_TYPE_LINK_ADD' | 'MESSAGE_TYPE_LINK_REMOVE' | 'MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS' | 'MESSAGE_TYPE_VERIFICATION_REMOVE' | 'MESSAGE_TYPE_USER_DATA_ADD' | 'MESSAGE_TYPE_USERNAME_PROOF' | 'MESSAGE_TYPE_FRAME_ACTION' — Type of the MessageBody. - MESSAGE_TYPE_CAST_ADD: Add a new Cast - MESSAGE_TYPE_CAST_REMOVE: Remove an existing Cast - MESSAGE_TYPE_REACTION_ADD: Add a Reaction to a Cast - MESSAGE_TYPE_REACTION_REMOVE: Remove a Reaction from a Cast - MESSAGE_TYPE_LINK_ADD: Add a new Link - MESSAGE_TYPE_LINK_REMOVE: Remove an existing Link - MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS: Add a Verification of an Ethereum Address - MESSAGE_TYPE_VERIFICATION_REMOVE: Remove a Verification - MESSAGE_TYPE_USER_DATA_ADD: Add metadata about a user - MESSAGE_TYPE_USERNAME_PROOF: Add or replace a username proof - MESSAGE_TYPE_FRAME_ACTION: A Farcaster Frame action
      - `fid` integer, required — The unique identifier (FID) of the user who created this message. FIDs are assigned sequentially when users register on the network and cannot be changed.
      - `timestamp` integer, required — Seconds since Farcaster Epoch (2021-01-01T00:00:00Z). Used to order messages chronologically and determine the most recent state. Must be within 10 minutes of the current time when the message is created.
      - `network` 'FARCASTER_NETWORK_MAINNET' | 'FARCASTER_NETWORK_TESTNET' | 'FARCASTER_NETWORK_DEVNET', required — Farcaster network the message is intended for. - FARCASTER_NETWORK_MAINNET: Public primary network - FARCASTER_NETWORK_TESTNET: Public test network - FARCASTER_NETWORK_DEVNET: Private test network
      - `reactionBody` ReactionBody, required — Specifies the details of a reaction to content on Farcaster. A reaction must specify its type (like/recast) and either a target cast ID or URL to react to. Only one target (either castId or URL) should be specified per reaction.
        - `type` 'Like' | 'Recast', required — Type of interaction a user can have with content on the Farcaster network. - Like: Express appreciation for the target content. Similar to "likes" or "favorites" on other platforms. - Recast: Share the target content with the user's followers, similar to a "retweet" or "reblog". Helps increase content visibility.
        - `targetCastId` CastId — A unique identifier for a cast (post) in the Farcaster network, consisting of the creator's FID and a hash of the cast's content. This combination ensures global uniqueness across all casts.
          - `fid` integer, required — The Farcaster ID (FID) of the user who created the cast. Required to uniquely identify the cast's author in the network.
          - `hash` string, required — A unique hash that identifies a specific cast within the creator's posts. Generated using HASH_SCHEME_BLAKE3 of the cast's content.
        - `targetUrl` string — The URL being reacted to. Used when reacting to external content or when the cast ID is not available.
    - MessageDataLink — Common properties shared by all Farcaster message types. These properties provide essential metadata about the message's origin, timing, and network context.
      - `type` 'MESSAGE_TYPE_CAST_ADD' | 'MESSAGE_TYPE_CAST_REMOVE' | 'MESSAGE_TYPE_REACTION_ADD' | 'MESSAGE_TYPE_REACTION_REMOVE' | 'MESSAGE_TYPE_LINK_ADD' | 'MESSAGE_TYPE_LINK_REMOVE' | 'MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS' | 'MESSAGE_TYPE_VERIFICATION_REMOVE' | 'MESSAGE_TYPE_USER_DATA_ADD' | 'MESSAGE_TYPE_USERNAME_PROOF' | 'MESSAGE_TYPE_FRAME_ACTION' — Type of the MessageBody. - MESSAGE_TYPE_CAST_ADD: Add a new Cast - MESSAGE_TYPE_CAST_REMOVE: Remove an existing Cast - MESSAGE_TYPE_REACTION_ADD: Add a Reaction to a Cast - MESSAGE_TYPE_REACTION_REMOVE: Remove a Reaction from a Cast - MESSAGE_TYPE_LINK_ADD: Add a new Link - MESSAGE_TYPE_LINK_REMOVE: Remove an existing Link - MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS: Add a Verification of an Ethereum Address - MESSAGE_TYPE_VERIFICATION_REMOVE: Remove a Verification - MESSAGE_TYPE_USER_DATA_ADD: Add metadata about a user - MESSAGE_TYPE_USERNAME_PROOF: Add or replace a username proof - MESSAGE_TYPE_FRAME_ACTION: A Farcaster Frame action
      - `fid` integer, required — The unique identifier (FID) of the user who created this message. FIDs are assigned sequentially when users register on the network and cannot be changed.
      - `timestamp` integer, required — Seconds since Farcaster Epoch (2021-01-01T00:00:00Z). Used to order messages chronologically and determine the most recent state. Must be within 10 minutes of the current time when the message is created.
      - `network` 'FARCASTER_NETWORK_MAINNET' | 'FARCASTER_NETWORK_TESTNET' | 'FARCASTER_NETWORK_DEVNET', required — Farcaster network the message is intended for. - FARCASTER_NETWORK_MAINNET: Public primary network - FARCASTER_NETWORK_TESTNET: Public test network - FARCASTER_NETWORK_DEVNET: Private test network
      - `linkBody` LinkBody, required — Defines a social connection between users in the Farcaster network. Currently used to establish following relationships, allowing users to curate their content feed.
        - `type` 'follow', required — Defines the type of social connection between users. - follow: Establishes a following relationship where the user will receive updates from the target user in their feed
        - `displayTimestamp` integer — User-defined timestamp that preserves the original creation time when message.data.timestamp needs to be updated for compaction. Useful for maintaining chronological order in user feeds.
        - `targetFid` integer, required — Farcaster ID (FID). A unique identifier assigned to each user in the Farcaster network. This number is permanent and cannot be changed. FIDs are assigned sequentially when users register on the network.
    - MessageDataVerificationAdd — Common properties shared by all Farcaster message types. These properties provide essential metadata about the message's origin, timing, and network context.
      - `type` 'MESSAGE_TYPE_CAST_ADD' | 'MESSAGE_TYPE_CAST_REMOVE' | 'MESSAGE_TYPE_REACTION_ADD' | 'MESSAGE_TYPE_REACTION_REMOVE' | 'MESSAGE_TYPE_LINK_ADD' | 'MESSAGE_TYPE_LINK_REMOVE' | 'MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS' | 'MESSAGE_TYPE_VERIFICATION_REMOVE' | 'MESSAGE_TYPE_USER_DATA_ADD' | 'MESSAGE_TYPE_USERNAME_PROOF' | 'MESSAGE_TYPE_FRAME_ACTION' — Type of the MessageBody. - MESSAGE_TYPE_CAST_ADD: Add a new Cast - MESSAGE_TYPE_CAST_REMOVE: Remove an existing Cast - MESSAGE_TYPE_REACTION_ADD: Add a Reaction to a Cast - MESSAGE_TYPE_REACTION_REMOVE: Remove a Reaction from a Cast - MESSAGE_TYPE_LINK_ADD: Add a new Link - MESSAGE_TYPE_LINK_REMOVE: Remove an existing Link - MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS: Add a Verification of an Ethereum Address - MESSAGE_TYPE_VERIFICATION_REMOVE: Remove a Verification - MESSAGE_TYPE_USER_DATA_ADD: Add metadata about a user - MESSAGE_TYPE_USERNAME_PROOF: Add or replace a username proof - MESSAGE_TYPE_FRAME_ACTION: A Farcaster Frame action
      - `fid` integer, required — The unique identifier (FID) of the user who created this message. FIDs are assigned sequentially when users register on the network and cannot be changed.
      - `timestamp` integer, required — Seconds since Farcaster Epoch (2021-01-01T00:00:00Z). Used to order messages chronologically and determine the most recent state. Must be within 10 minutes of the current time when the message is created.
      - `network` 'FARCASTER_NETWORK_MAINNET' | 'FARCASTER_NETWORK_TESTNET' | 'FARCASTER_NETWORK_DEVNET', required — Farcaster network the message is intended for. - FARCASTER_NETWORK_MAINNET: Public primary network - FARCASTER_NETWORK_TESTNET: Public test network - FARCASTER_NETWORK_DEVNET: Private test network
      - `verificationAddEthAddressBody` VerificationAddEthAddressBody, required — Contains the data required to verify ownership of an Ethereum or Solana address. The verification process requires a cryptographic signature from the blockchain address and includes the block hash at the time of signing for timestamp verification.
        - `address` string, required — The Ethereum (0x-prefixed) or Solana address that the user is claiming ownership of. Must match the address that produced the signature.
        - `ethSignature` string, byte, required — Base64-encoded signature produced by the blockchain address, proving ownership. For Ethereum, this is an ECDSA signature of a specific message format.
        - `blockHash` string, required — The hash of the most recent block when the signature was created. Used to verify the approximate time of signature creation.
    - MessageDataVerificationRemove — Common properties shared by all Farcaster message types. These properties provide essential metadata about the message's origin, timing, and network context.
      - `type` 'MESSAGE_TYPE_CAST_ADD' | 'MESSAGE_TYPE_CAST_REMOVE' | 'MESSAGE_TYPE_REACTION_ADD' | 'MESSAGE_TYPE_REACTION_REMOVE' | 'MESSAGE_TYPE_LINK_ADD' | 'MESSAGE_TYPE_LINK_REMOVE' | 'MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS' | 'MESSAGE_TYPE_VERIFICATION_REMOVE' | 'MESSAGE_TYPE_USER_DATA_ADD' | 'MESSAGE_TYPE_USERNAME_PROOF' | 'MESSAGE_TYPE_FRAME_ACTION' — Type of the MessageBody. - MESSAGE_TYPE_CAST_ADD: Add a new Cast - MESSAGE_TYPE_CAST_REMOVE: Remove an existing Cast - MESSAGE_TYPE_REACTION_ADD: Add a Reaction to a Cast - MESSAGE_TYPE_REACTION_REMOVE: Remove a Reaction from a Cast - MESSAGE_TYPE_LINK_ADD: Add a new Link - MESSAGE_TYPE_LINK_REMOVE: Remove an existing Link - MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS: Add a Verification of an Ethereum Address - MESSAGE_TYPE_VERIFICATION_REMOVE: Remove a Verification - MESSAGE_TYPE_USER_DATA_ADD: Add metadata about a user - MESSAGE_TYPE_USERNAME_PROOF: Add or replace a username proof - MESSAGE_TYPE_FRAME_ACTION: A Farcaster Frame action
      - `fid` integer, required — The unique identifier (FID) of the user who created this message. FIDs are assigned sequentially when users register on the network and cannot be changed.
      - `timestamp` integer, required — Seconds since Farcaster Epoch (2021-01-01T00:00:00Z). Used to order messages chronologically and determine the most recent state. Must be within 10 minutes of the current time when the message is created.
      - `network` 'FARCASTER_NETWORK_MAINNET' | 'FARCASTER_NETWORK_TESTNET' | 'FARCASTER_NETWORK_DEVNET', required — Farcaster network the message is intended for. - FARCASTER_NETWORK_MAINNET: Public primary network - FARCASTER_NETWORK_TESTNET: Public test network - FARCASTER_NETWORK_DEVNET: Private test network
      - `verificationRemoveBody` VerificationRemoveBody, required — Contains the data required to remove a previously added blockchain address verification from a user's profile. This operation permanently removes the verification until explicitly re-added.
        - `address` string, required — The Ethereum address (0x-prefixed) for which the verification should be removed. Must match a previously verified address in the user's profile.
    - MessageDataUserDataAdd — Common properties shared by all Farcaster message types. These properties provide essential metadata about the message's origin, timing, and network context.
      - `type` 'MESSAGE_TYPE_CAST_ADD' | 'MESSAGE_TYPE_CAST_REMOVE' | 'MESSAGE_TYPE_REACTION_ADD' | 'MESSAGE_TYPE_REACTION_REMOVE' | 'MESSAGE_TYPE_LINK_ADD' | 'MESSAGE_TYPE_LINK_REMOVE' | 'MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS' | 'MESSAGE_TYPE_VERIFICATION_REMOVE' | 'MESSAGE_TYPE_USER_DATA_ADD' | 'MESSAGE_TYPE_USERNAME_PROOF' | 'MESSAGE_TYPE_FRAME_ACTION' — Type of the MessageBody. - MESSAGE_TYPE_CAST_ADD: Add a new Cast - MESSAGE_TYPE_CAST_REMOVE: Remove an existing Cast - MESSAGE_TYPE_REACTION_ADD: Add a Reaction to a Cast - MESSAGE_TYPE_REACTION_REMOVE: Remove a Reaction from a Cast - MESSAGE_TYPE_LINK_ADD: Add a new Link - MESSAGE_TYPE_LINK_REMOVE: Remove an existing Link - MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS: Add a Verification of an Ethereum Address - MESSAGE_TYPE_VERIFICATION_REMOVE: Remove a Verification - MESSAGE_TYPE_USER_DATA_ADD: Add metadata about a user - MESSAGE_TYPE_USERNAME_PROOF: Add or replace a username proof - MESSAGE_TYPE_FRAME_ACTION: A Farcaster Frame action
      - `fid` integer, required — The unique identifier (FID) of the user who created this message. FIDs are assigned sequentially when users register on the network and cannot be changed.
      - `timestamp` integer, required — Seconds since Farcaster Epoch (2021-01-01T00:00:00Z). Used to order messages chronologically and determine the most recent state. Must be within 10 minutes of the current time when the message is created.
      - `network` 'FARCASTER_NETWORK_MAINNET' | 'FARCASTER_NETWORK_TESTNET' | 'FARCASTER_NETWORK_DEVNET', required — Farcaster network the message is intended for. - FARCASTER_NETWORK_MAINNET: Public primary network - FARCASTER_NETWORK_TESTNET: Public test network - FARCASTER_NETWORK_DEVNET: Private test network
      - `userDataBody` UserDataBody, required — Contains the data for updating a specific field of a user's profile metadata. Each update operation modifies one profile field at a time, allowing granular control over profile information.
        - `type` 'USER_DATA_TYPE_PFP' | 'USER_DATA_TYPE_DISPLAY' | 'USER_DATA_TYPE_BIO' | 'USER_DATA_TYPE_URL' | 'USER_DATA_TYPE_USERNAME', required — Specifies which field of a user's profile is being updated. - USER_DATA_TYPE_PFP: Profile Picture URL for the user's avatar - USER_DATA_TYPE_DISPLAY: Display Name shown on the user's profile - USER_DATA_TYPE_BIO: Biography or description of the user - USER_DATA_TYPE_URL: Website or social media link for the user - USER_DATA_TYPE_USERNAME: Preferred username for the user
        - `value` string, required — The new value for the specified profile field. The format depends on the type: URLs for profile pictures, plain text for display names and bios, etc.
    - MessageDataUsernameProof — Common properties shared by all Farcaster message types. These properties provide essential metadata about the message's origin, timing, and network context.
      - `type` 'MESSAGE_TYPE_CAST_ADD' | 'MESSAGE_TYPE_CAST_REMOVE' | 'MESSAGE_TYPE_REACTION_ADD' | 'MESSAGE_TYPE_REACTION_REMOVE' | 'MESSAGE_TYPE_LINK_ADD' | 'MESSAGE_TYPE_LINK_REMOVE' | 'MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS' | 'MESSAGE_TYPE_VERIFICATION_REMOVE' | 'MESSAGE_TYPE_USER_DATA_ADD' | 'MESSAGE_TYPE_USERNAME_PROOF' | 'MESSAGE_TYPE_FRAME_ACTION' — Type of the MessageBody. - MESSAGE_TYPE_CAST_ADD: Add a new Cast - MESSAGE_TYPE_CAST_REMOVE: Remove an existing Cast - MESSAGE_TYPE_REACTION_ADD: Add a Reaction to a Cast - MESSAGE_TYPE_REACTION_REMOVE: Remove a Reaction from a Cast - MESSAGE_TYPE_LINK_ADD: Add a new Link - MESSAGE_TYPE_LINK_REMOVE: Remove an existing Link - MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS: Add a Verification of an Ethereum Address - MESSAGE_TYPE_VERIFICATION_REMOVE: Remove a Verification - MESSAGE_TYPE_USER_DATA_ADD: Add metadata about a user - MESSAGE_TYPE_USERNAME_PROOF: Add or replace a username proof - MESSAGE_TYPE_FRAME_ACTION: A Farcaster Frame action
      - `fid` integer, required — The unique identifier (FID) of the user who created this message. FIDs are assigned sequentially when users register on the network and cannot be changed.
      - `timestamp` integer, required — Seconds since Farcaster Epoch (2021-01-01T00:00:00Z). Used to order messages chronologically and determine the most recent state. Must be within 10 minutes of the current time when the message is created.
      - `network` 'FARCASTER_NETWORK_MAINNET' | 'FARCASTER_NETWORK_TESTNET' | 'FARCASTER_NETWORK_DEVNET', required — Farcaster network the message is intended for. - FARCASTER_NETWORK_MAINNET: Public primary network - FARCASTER_NETWORK_TESTNET: Public test network - FARCASTER_NETWORK_DEVNET: Private test network
      - `usernameProofBody` UserNameProof, required
        - `timestamp` integer, required — Seconds since Unix Epoch which began on Jan 1, 1970 00:00:00 UTC
        - `name` string, required
        - `owner` string, required
        - `signature` string, byte, required
        - `fid` integer, required — Farcaster ID (FID). A unique identifier assigned to each user in the Farcaster network. This number is permanent and cannot be changed. FIDs are assigned sequentially when users register on the network.
        - `type` 'USERNAME_TYPE_FNAME' | 'USERNAME_TYPE_ENS_L1', required
    - MessageDataFrameAction — Common properties shared by all Farcaster message types. These properties provide essential metadata about the message's origin, timing, and network context.
      - `type` 'MESSAGE_TYPE_CAST_ADD' | 'MESSAGE_TYPE_CAST_REMOVE' | 'MESSAGE_TYPE_REACTION_ADD' | 'MESSAGE_TYPE_REACTION_REMOVE' | 'MESSAGE_TYPE_LINK_ADD' | 'MESSAGE_TYPE_LINK_REMOVE' | 'MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS' | 'MESSAGE_TYPE_VERIFICATION_REMOVE' | 'MESSAGE_TYPE_USER_DATA_ADD' | 'MESSAGE_TYPE_USERNAME_PROOF' | 'MESSAGE_TYPE_FRAME_ACTION' — Type of the MessageBody. - MESSAGE_TYPE_CAST_ADD: Add a new Cast - MESSAGE_TYPE_CAST_REMOVE: Remove an existing Cast - MESSAGE_TYPE_REACTION_ADD: Add a Reaction to a Cast - MESSAGE_TYPE_REACTION_REMOVE: Remove a Reaction from a Cast - MESSAGE_TYPE_LINK_ADD: Add a new Link - MESSAGE_TYPE_LINK_REMOVE: Remove an existing Link - MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS: Add a Verification of an Ethereum Address - MESSAGE_TYPE_VERIFICATION_REMOVE: Remove a Verification - MESSAGE_TYPE_USER_DATA_ADD: Add metadata about a user - MESSAGE_TYPE_USERNAME_PROOF: Add or replace a username proof - MESSAGE_TYPE_FRAME_ACTION: A Farcaster Frame action
      - `fid` integer, required — The unique identifier (FID) of the user who created this message. FIDs are assigned sequentially when users register on the network and cannot be changed.
      - `timestamp` integer, required — Seconds since Farcaster Epoch (2021-01-01T00:00:00Z). Used to order messages chronologically and determine the most recent state. Must be within 10 minutes of the current time when the message is created.
      - `network` 'FARCASTER_NETWORK_MAINNET' | 'FARCASTER_NETWORK_TESTNET' | 'FARCASTER_NETWORK_DEVNET', required — Farcaster network the message is intended for. - FARCASTER_NETWORK_MAINNET: Public primary network - FARCASTER_NETWORK_TESTNET: Public test network - FARCASTER_NETWORK_DEVNET: Private test network
      - `frameActionBody` FrameActionBody, required — Contains the data for a user's interaction with a Farcaster Frame. Frames are interactive elements within casts that can have up to 4 clickable buttons, allowing users to engage with content in predefined ways.
        - `url` string, uri, required — The URL associated with the frame action. This typically points to the frame's content or the destination that handles the interaction.
        - `buttonIndex` integer, required — Identifies which button the user clicked in the frame. Frames can have up to 4 buttons, numbered from 1 to 4.
        - `castId` CastId, required — A unique identifier for a cast (post) in the Farcaster network, consisting of the creator's FID and a hash of the cast's content. This combination ensures global uniqueness across all casts.
          - `fid` integer, required — The Farcaster ID (FID) of the user who created the cast. Required to uniquely identify the cast's author in the network.
          - `hash` string, required — A unique hash that identifies a specific cast within the creator's posts. Generated using HASH_SCHEME_BLAKE3 of the cast's content.
  - `hash` string, required
  - `hashScheme` 'HASH_SCHEME_BLAKE3', required — Type of hashing scheme used to produce a digest of MessageData. - HASH_SCHEME_BLAKE3: Default scheme for hashing MessageData
  - `signature` string, byte, required
  - `signatureScheme` 'SIGNATURE_SCHEME_ED25519' | 'SIGNATURE_SCHEME_EIP712', required — Type of signature scheme used to sign the Message hash - SIGNATURE_SCHEME_ED25519: Ed25519 signature (default) - SIGNATURE_SCHEME_EIP712: ECDSA signature using EIP-712 scheme
  - `signer` string, required

## Other responses

- `default` — An unexpected error response.

---

[API](https://skmtc.dev/neynar/apis/neynar-api.md) · [All operations](https://skmtc.dev/neynar/apis/neynar-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/neynar/neynar-api/revisions/dbb91bfb0d1a/schema)
