A Message is a delta operation on the Farcaster network. The message protobuf is an envelope that wraps a MessageData object and contains a hash and signature which can verify its authenticity.
The body is of type file.
Response
A successful response.
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.
Represents a new cast (post) being created in the Farcaster network. A cast can include text content, mentions of other users, embedded URLs, and references to parent posts for replies.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Neynar","colors":{"primary":"#482b82","light":"#8512e0","dark":"#482b82"},"logo":{"light":"https://mintcdn.com/neynar/R9a_lt8Wf1SbwKa6/logo/farcaster-icon-light.svg?fit=max\u0026auto=format\u0026n=R9a_lt8Wf1SbwKa6\u0026q=85\u0026s=68441f4612c3fb569fd6cfd574f7be38","dark":"https://mintcdn.com/neynar/R9a_lt8Wf1SbwKa6/logo/farcaster-icon.svg?fit=max\u0026auto=format\u0026n=R9a_lt8Wf1SbwKa6\u0026q=85\u0026s=5bd2df1a42270c9df85557b517f1be64","href":"https://docs.neynar.com/"},"favicon":"https://mintcdn.com/neynar/R9a_lt8Wf1SbwKa6/favicon.svg?fit=max\u0026auto=format\u0026n=R9a_lt8Wf1SbwKa6\u0026q=85\u0026s=8ff2344189ea332738675757ccc06287","appearance":{"default":"dark"},"background":{"decoration":"gradient"},"navbar":{"links":[{"href":"https://dev.neynar.com/","label":"Log in"}],"primary":{"type":"github","href":"https://github.com/farcasterxyz"}},"footer":{"socials":{"github":"https://github.com/neynarxyz"}},"seo":{"metatags":{"og:type":"website","og:site_name":"Neynar Docs","og:url":"https://docs.neynar.com","og:title":"Neynar Documentation","og:description":"Comprehensive documentation for Neynar APIs and SDKs","referrer":"strict-origin-when-cross-origin","robots":"index, follow"},"indexing":"all"},"fonts":{"heading":{"family":"Work Sans","weight":500},"body":{"family":"Work Sans"}},"styling":{"codeblocks":"system","latex":true},"integrations":{"ga4":{"measurementId":"G-P1P663665L"}},"contextual":{"options":["claude","chatgpt","cursor","vscode","mcp","copy","view"],"display":"header"},"navigation":{"global":{"anchors":[{"anchor":"Status","icon":"signal","href":"https://status.neynar.com/"},{"anchor":"Blog","icon":"newspaper","href":"https://neynar.com/blog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"neynar","hasAudioNarration":false,"actualSubdomain":"neynar","customDomains":["docs.neynar.com"],"gitSource":{"type":"github","owner":"neynarxyz","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aebe3fbbaab42e7766182d9","collectionId":"f5db92e5-3f45-45f2-82de-e15de925dc3d","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aebe3fbbaab42e7766182d9"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aebe3fbbaab42e7766182d9","clientVersion":"0.0.4074","searchFilterCounts":[{"language":"default","tag":"REST API Reference","count":166},{"language":"default","tag":"Node.js SDK","count":138},{"language":"default","tag":"Farcaster","count":128},{"language":"default","tag":"Learn","count":92},{"language":"default","tag":"Tutorials","count":80},{"language":"default","tag":"Mini Apps","count":53},{"language":"default","tag":"Snapchain","count":39},{"language":"default","tag":"SDK","count":27},{"language":"default","tag":"Reference","count":25},{"language":"default","tag":"Farcaster Hub API","count":25}]},"assistantConfig":{"deflection":{"enabled":true,"email":"support@neynar.com","showHelpButton":true}},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"custom.css","content":"h1,h2,h3,h4,h5,h6{font-weight:500!important}.page-title,.section-title,.heading{font-weight:500!important}[class*=\"font-bold\"],[class*=\"font-semibold\"]{font-weight:500!important}.cursor-doc-image{width:min(640px, 80%);height:auto;display:block;margin:0.5rem auto;border-radius:12px}.cursor-doc-image--compact{width:min(300px, 60%);height:auto;display:block;margin:0.5rem auto;border-radius:12px}.nav-dropdown-wrapper{position:relative;display:inline-flex}.nav-dropdown-trigger{display:inline-flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;font-size:14px;font-weight:500;font-family:inherit;color:inherit;padding:6px 0;white-space:nowrap}.nav-dropdown-trigger:hover{opacity:0.8}.nav-dropdown-chevron{display:inline-flex;align-items:center;transition:transform 0.2s ease}.nav-dropdown-wrapper.open .nav-dropdown-chevron{transform:rotate(180deg)}.nav-dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:180px;border-radius:8px;padding:4px;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;z-index:100;background:#ffffff;border:1px solid #e5e5e5;box-shadow:0 4px 12px rgba(0, 0, 0, 0.08)}:root[class~=\"dark\"] .nav-dropdown-menu,.dark .nav-dropdown-menu{background:#1a1a2e;border-color:#2a2a3e;box-shadow:0 4px 12px rgba(0, 0, 0, 0.3)}.nav-dropdown-wrapper.open .nav-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.nav-dropdown-item{display:block;padding:8px 12px;font-size:14px;font-weight:400;color:#374151;text-decoration:none;border-radius:6px;white-space:nowrap}.nav-dropdown-item:hover{background:#f3f4f6;color:#111827;text-decoration:none}:root[class~=\"dark\"] .nav-dropdown-item,.dark .nav-dropdown-item{color:#d1d5db}:root[class~=\"dark\"] .nav-dropdown-item:hover,.dark .nav-dropdown-item:hover{background:#2a2a3e;color:#ffffff}"}],"page":{"pagePath":"reference/publish-message","slug":"/reference/publish-message","pageMetadata":{"openapi":"post /v1/submitMessage","keywords":["publish message","neynar api","farcaster message","submit message","message publishing","v1 api","message submission"],"author":"Neynar","robots":"index, follow","openGraph":{"title":"Publish Message - Neynar Farcaster API","description":"Submit messages to Farcaster using the v1 API endpoint for message publishing","type":"article"},"title":"Submit signed message","description":"Submit a message to the Farcaster network.","href":"/reference/publish-message"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Submit a message to the Farcaster network.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"openapi":"post /v1/submitMessage","keywords":["publish message","neynar api","farcaster message","submit message","message publishing","v1 api","message submission"],"author":"Neynar","robots":"index, follow","openGraph":{"title":"Publish Message - Neynar Farcaster API","description":"Submit messages to Farcaster using the v1 API endpoint for message publishing","type":"article"},"title":"Submit signed message","description":"Submit a message to the Farcaster network.","href":"/reference/publish-message"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/neynar/877f22f5fc1f428d/ahrefs.js","/_mintlify/custom/neynar/298abe83c87933a3/scripts/generate-nodejs-sdk-docs.js","/_mintlify/custom/neynar/be9de9b5ab62eeb0/navbar-dropdown.js"],"openApiReferenceData":{"operation":{"tags":["Message"],"summary":"Submit signed message","description":"Submit a message to the Farcaster network.","externalDocs":{"description":"Submit a message to the Farcaster network","url":"https://docs.neynar.com/reference/submit-signed-message"},"operationId":"publish-message","requestBody":"8a0e424a-b7cc-4481-b865-78beaa064cd7","responses":{"200":"866e3545-629e-446a-92ea-054c9cfaebf9","default":"8202f230-b233-43f1-af9e-ec28fd076302"},"x-codegen-request-body-name":"body","method":"post","type":"path","servers":["d41b4f91-8b80-488e-9f82-f2fbf85f0815"],"security":["b7483820-2b6c-4ab9-a6d8-c8dd287d5e19"],"path":"/v1/submitMessage","baseUrlOptions":["https://snapchain-api.neynar.com"],"title":"Submit signed message","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"description":"A Message is a delta operation on the Farcaster network. The message protobuf is an envelope that wraps a MessageData object and contains a hash and signature which can verify its authenticity.\n","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary","uniqueKey":"","typeLabel":"file"},"examples":{"Example":{"title":"Example","value":"\u003cstring>"}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"866e3545-629e-446a-92ea-054c9cfaebf9":{"description":"A successful response.","content":{"application/json":{"schema":{"type":"object","description":"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:\n- Creating or removing casts (posts)\n- Adding or removing reactions\n- Following or unfollowing users\n- Updating profile data\n- Verifying Ethereum addresses\n\nEach message contains:\n- A MessageData object with the actual content\n- A hash of the content for integrity verification\n- A cryptographic signature to prove authenticity\n- The signer's public key for verification\n\nMessages are immutable once created and form an append-only log of all user actions on the network.","required":["hash","hashScheme","signature","signatureScheme","signer","data"],"properties":{"data":{"oneOf":[{"type":"object","description":"Represents a new cast (post) being created in the Farcaster network. A cast can include text content, mentions of other users, embedded URLs, and references to parent posts for replies.","required":["castAddBody","fid","network","timestamp"],"properties":{"fid":{"title":"Farcaster ID of the user producing the message","description":"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.","type":"integer","format":"uint64","example":2,"isRequired":true,"uniqueKey":"data.oneOf.0.fid","typeLabel":"integer\u003cuint64>"},"timestamp":{"description":"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.","type":"integer","format":"int64","example":48994466,"isRequired":true,"uniqueKey":"data.oneOf.0.timestamp","typeLabel":"integer\u003cint64>"},"network":{"type":"string","description":"Farcaster network the message is intended for.\n- FARCASTER_NETWORK_MAINNET: Public primary network\n- FARCASTER_NETWORK_TESTNET: Public test network\n- FARCASTER_NETWORK_DEVNET: Private test network","default":"FARCASTER_NETWORK_MAINNET","enum":["FARCASTER_NETWORK_MAINNET","FARCASTER_NETWORK_TESTNET","FARCASTER_NETWORK_DEVNET"],"isRequired":true,"uniqueKey":"data.oneOf.0.network","typeLabel":"enum\u003cstring>"},"castAddBody":{"type":"object","description":"The content and metadata of the new cast, including the text, mentions, embeds, and any parent references for replies.","required":["embedsDeprecated","mentions","text","mentionsPositions","embeds"],"properties":{"embedsDeprecated":{"title":"URLs to be embedded in the cast","type":"array","items":{"type":"string","uniqueKey":"data.oneOf.0.castAddBody.embedsDeprecated.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"data.oneOf.0.castAddBody.embedsDeprecated","typeLabel":"string[]"},"mentions":{"title":"Fids mentioned in the cast","type":"array","items":{"type":"integer","format":"uint64","example":2,"uniqueKey":"data.oneOf.0.castAddBody.mentions.items.[INDEX]","typeLabel":"integer\u003cuint64>"},"isRequired":true,"uniqueKey":"data.oneOf.0.castAddBody.mentions","typeLabel":"integer\u003cuint64>[]"},"text":{"title":"Text of the cast","type":"string","isRequired":true,"uniqueKey":"data.oneOf.0.castAddBody.text","typeLabel":"string"},"mentionsPositions":{"title":"Positions of the mentions in the text","type":"array","items":{"type":"integer","format":"int64","uniqueKey":"data.oneOf.0.castAddBody.mentionsPositions.items.[INDEX]","typeLabel":"integer\u003cint64>"},"isRequired":true,"uniqueKey":"data.oneOf.0.castAddBody.mentionsPositions","typeLabel":"integer\u003cint64>[]"},"embeds":{"title":"URLs or cast IDs to be embedded in the cast","type":"array","items":{"oneOf":[{"type":"object","required":["castId"],"properties":{"castId":{"description":"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.","required":["fid","hash"],"type":"object","properties":{"fid":{"title":"Fid of the user who created the cast","description":"The Farcaster ID (FID) of the user who created the cast. Required to uniquely identify the cast's author in the network.","type":"integer","format":"uint64","example":2,"isRequired":true,"uniqueKey":"data.oneOf.0.castAddBody.embeds.items.[INDEX].oneOf.0.castId.fid","typeLabel":"integer\u003cuint64>"},"hash":{"description":"A unique hash that identifies a specific cast within the creator's posts. Generated using HASH_SCHEME_BLAKE3 of the cast's content.","pattern":"^0x[0-9a-fA-F]{40}$","type":"string","example":"0x03aff391a6eb1772b20b4ead9a89f732be75fe27","isRequired":true,"uniqueKey":"data.oneOf.0.castAddBody.embeds.items.[INDEX].oneOf.0.castId.hash","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.oneOf.0.castAddBody.embeds.items.[INDEX].oneOf.0.castId","typeLabel":"object"}},"uniqueKey":"data.oneOf.0.castAddBody.embeds.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"data.oneOf.0.castAddBody.embeds.items.[INDEX].oneOf.1.url","typeLabel":"string\u003curi>"}},"uniqueKey":"data.oneOf.0.castAddBody.embeds.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"data.oneOf.0.castAddBody.embeds.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.oneOf.0.castAddBody.embeds","typeLabel":"URLs or cast IDs to be embedded in the cast · object[]"},"parentCastId":{"description":"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.","required":["fid","hash"],"type":"object","properties":{"fid":{"title":"Fid of the user who created the cast","description":"The Farcaster ID (FID) of the user who created the cast. Required to uniquely identify the cast's author in the network.","type":"integer","format":"uint64","example":2,"isRequired":true,"uniqueKey":"data.oneOf.0.castAddBody.parentCastId.fid","typeLabel":"integer\u003cuint64>"},"hash":{"description":"A unique hash that identifies a specific cast within the creator's posts. Generated using HASH_SCHEME_BLAKE3 of the cast's content.","pattern":"^0x[0-9a-fA-F]{40}$","type":"string","example":"0x03aff391a6eb1772b20b4ead9a89f732be75fe27","isRequired":true,"uniqueKey":"data.oneOf.0.castAddBody.parentCastId.hash","typeLabel":"string"}},"uniqueKey":"data.oneOf.0.castAddBody.parentCastId","typeLabel":"object"},"parentUrl":{"title":"Parent URL","type":"string","example":"chain://eip155:1/erc721:0x39d89b649ffa044383333d297e325d42d31329b2","uniqueKey":"data.oneOf.0.castAddBody.parentUrl","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.oneOf.0.castAddBody","typeLabel":"object"},"type":{"type":"string","description":"Type of the MessageBody.\n- MESSAGE_TYPE_CAST_ADD: Add a new Cast\n- MESSAGE_TYPE_CAST_REMOVE: Remove an existing Cast\n- MESSAGE_TYPE_REACTION_ADD: Add a Reaction to a Cast\n- MESSAGE_TYPE_REACTION_REMOVE: Remove a Reaction from a Cast\n- MESSAGE_TYPE_LINK_ADD: Add a new Link\n- MESSAGE_TYPE_LINK_REMOVE: Remove an existing Link\n- MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS: Add a Verification of an Ethereum Address\n- MESSAGE_TYPE_VERIFICATION_REMOVE: Remove a Verification\n- MESSAGE_TYPE_USER_DATA_ADD: Add metadata about a user\n- MESSAGE_TYPE_USERNAME_PROOF: Add or replace a username proof\n- MESSAGE_TYPE_FRAME_ACTION: A Farcaster Frame action","default":"MESSAGE_TYPE_CAST_ADD","enum":["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"],"uniqueKey":"data.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"object","description":"Represents a request to remove (delete) a previously created cast. Only the original creator of a cast can remove it.","required":["targetHash","fid","network","timestamp"],"properties":{"fid":{"title":"Farcaster ID of the user producing the message","description":"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.","type":"integer","format":"uint64","example":2,"isRequired":true,"uniqueKey":"data.oneOf.1.fid","typeLabel":"integer\u003cuint64>"},"timestamp":{"description":"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.","type":"integer","format":"int64","example":48994466,"isRequired":true,"uniqueKey":"data.oneOf.1.timestamp","typeLabel":"integer\u003cint64>"},"network":{"type":"string","description":"Farcaster network the message is intended for.\n- FARCASTER_NETWORK_MAINNET: Public primary network\n- FARCASTER_NETWORK_TESTNET: Public test network\n- FARCASTER_NETWORK_DEVNET: Private test network","default":"FARCASTER_NETWORK_MAINNET","enum":["FARCASTER_NETWORK_MAINNET","FARCASTER_NETWORK_TESTNET","FARCASTER_NETWORK_DEVNET"],"isRequired":true,"uniqueKey":"data.oneOf.1.network","typeLabel":"enum\u003cstring>"},"targetHash":{"title":"Hash of the cast to remove","description":"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.","pattern":"^0x[0-9a-fA-F]{40}$","type":"string","example":"0x03aff391a6eb1772b20b4ead9a89f732be75fe27","isRequired":true,"uniqueKey":"data.oneOf.1.targetHash","typeLabel":"string"},"type":{"type":"string","description":"Type of the MessageBody.\n- MESSAGE_TYPE_CAST_ADD: Add a new Cast\n- MESSAGE_TYPE_CAST_REMOVE: Remove an existing Cast\n- MESSAGE_TYPE_REACTION_ADD: Add a Reaction to a Cast\n- MESSAGE_TYPE_REACTION_REMOVE: Remove a Reaction from a Cast\n- MESSAGE_TYPE_LINK_ADD: Add a new Link\n- MESSAGE_TYPE_LINK_REMOVE: Remove an existing Link\n- MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS: Add a Verification of an Ethereum Address\n- MESSAGE_TYPE_VERIFICATION_REMOVE: Remove a Verification\n- MESSAGE_TYPE_USER_DATA_ADD: Add metadata about a user\n- MESSAGE_TYPE_USERNAME_PROOF: Add or replace a username proof\n- MESSAGE_TYPE_FRAME_ACTION: A Farcaster Frame action","default":"MESSAGE_TYPE_CAST_ADD","enum":["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"],"uniqueKey":"data.oneOf.1.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.oneOf.1","typeLabel":"object"},{"type":"object","description":"Represents a user's reaction to content on the Farcaster network. Reactions can be likes or recasts of casts, allowing users to express appreciation or share content with their followers.","required":["reactionBody","fid","network","timestamp"],"properties":{"fid":{"title":"Farcaster ID of the user producing the message","description":"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.","type":"integer","format":"uint64","example":2,"isRequired":true,"uniqueKey":"data.oneOf.2.fid","typeLabel":"integer\u003cuint64>"},"timestamp":{"description":"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.","type":"integer","format":"int64","example":48994466,"isRequired":true,"uniqueKey":"data.oneOf.2.timestamp","typeLabel":"integer\u003cint64>"},"network":{"type":"string","description":"Farcaster network the message is intended for.\n- FARCASTER_NETWORK_MAINNET: Public primary network\n- FARCASTER_NETWORK_TESTNET: Public test network\n- FARCASTER_NETWORK_DEVNET: Private test network","default":"FARCASTER_NETWORK_MAINNET","enum":["FARCASTER_NETWORK_MAINNET","FARCASTER_NETWORK_TESTNET","FARCASTER_NETWORK_DEVNET"],"isRequired":true,"uniqueKey":"data.oneOf.2.network","typeLabel":"enum\u003cstring>"},"reactionBody":{"type":"object","description":"Contains the type of reaction (like/recast) and the target content being reacted to. The target can be specified either by castId or URL.","required":["type"],"properties":{"type":{"type":"string","description":"Type of interaction a user can have with content on the Farcaster network.\n- Like: Express appreciation for the target content. Similar to \"likes\" or \"favorites\" on other platforms.\n- Recast: Share the target content with the user's followers, similar to a \"retweet\" or \"reblog\". Helps increase content visibility.","default":"Like","enum":["Like","Recast"],"example":"Like","isRequired":true,"uniqueKey":"data.oneOf.2.reactionBody.type","typeLabel":"enum\u003cstring>"},"targetCastId":{"type":"object","description":"The unique identifier of the cast being reacted to. Must be a valid CastId containing the creator's FID and the cast's hash.","required":["fid","hash"],"properties":{"fid":{"title":"Fid of the user who created the cast","description":"The Farcaster ID (FID) of the user who created the cast. Required to uniquely identify the cast's author in the network.","type":"integer","format":"uint64","example":2,"isRequired":true,"uniqueKey":"data.oneOf.2.reactionBody.targetCastId.fid","typeLabel":"integer\u003cuint64>"},"hash":{"description":"A unique hash that identifies a specific cast within the creator's posts. Generated using HASH_SCHEME_BLAKE3 of the cast's content.","pattern":"^0x[0-9a-fA-F]{40}$","type":"string","example":"0x03aff391a6eb1772b20b4ead9a89f732be75fe27","isRequired":true,"uniqueKey":"data.oneOf.2.reactionBody.targetCastId.hash","typeLabel":"string"}},"uniqueKey":"data.oneOf.2.reactionBody.targetCastId","typeLabel":"object"},"targetUrl":{"title":"URL to react to","description":"The URL being reacted to. Used when reacting to external content or when the cast ID is not available.","type":"string","example":"https://www.example.com/article","uniqueKey":"data.oneOf.2.reactionBody.targetUrl","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.oneOf.2.reactionBody","typeLabel":"object"},"type":{"type":"string","description":"Type of the MessageBody.\n- MESSAGE_TYPE_CAST_ADD: Add a new Cast\n- MESSAGE_TYPE_CAST_REMOVE: Remove an existing Cast\n- MESSAGE_TYPE_REACTION_ADD: Add a Reaction to a Cast\n- MESSAGE_TYPE_REACTION_REMOVE: Remove a Reaction from a Cast\n- MESSAGE_TYPE_LINK_ADD: Add a new Link\n- MESSAGE_TYPE_LINK_REMOVE: Remove an existing Link\n- MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS: Add a Verification of an Ethereum Address\n- MESSAGE_TYPE_VERIFICATION_REMOVE: Remove a Verification\n- MESSAGE_TYPE_USER_DATA_ADD: Add metadata about a user\n- MESSAGE_TYPE_USERNAME_PROOF: Add or replace a username proof\n- MESSAGE_TYPE_FRAME_ACTION: A Farcaster Frame action","default":"MESSAGE_TYPE_CAST_ADD","enum":["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"],"uniqueKey":"data.oneOf.2.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.oneOf.2","typeLabel":"object"},{"type":"object","description":"Represents a social graph connection between users in the Farcaster network. Currently supports following relationships between users.","required":["linkBody","fid","network","timestamp"],"properties":{"fid":{"title":"Farcaster ID of the user producing the message","description":"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.","type":"integer","format":"uint64","example":2,"isRequired":true,"uniqueKey":"data.oneOf.3.fid","typeLabel":"integer\u003cuint64>"},"timestamp":{"description":"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.","type":"integer","format":"int64","example":48994466,"isRequired":true,"uniqueKey":"data.oneOf.3.timestamp","typeLabel":"integer\u003cint64>"},"network":{"type":"string","description":"Farcaster network the message is intended for.\n- FARCASTER_NETWORK_MAINNET: Public primary network\n- FARCASTER_NETWORK_TESTNET: Public test network\n- FARCASTER_NETWORK_DEVNET: Private test network","default":"FARCASTER_NETWORK_MAINNET","enum":["FARCASTER_NETWORK_MAINNET","FARCASTER_NETWORK_TESTNET","FARCASTER_NETWORK_DEVNET"],"isRequired":true,"uniqueKey":"data.oneOf.3.network","typeLabel":"enum\u003cstring>"},"linkBody":{"type":"object","description":"Contains the details of the social connection, including the type of relationship and the target user.","required":["type","targetFid"],"properties":{"type":{"type":"string","description":"Defines the type of social connection between users.\n- follow: Establishes a following relationship where the user will receive updates from the target user in their feed","default":"follow","enum":["follow"],"example":"follow","isRequired":true,"uniqueKey":"data.oneOf.3.linkBody.type","typeLabel":"enum\u003cstring>"},"targetFid":{"type":"integer","format":"uint64","minimum":1,"description":"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.\n","example":1,"isRequired":true,"uniqueKey":"data.oneOf.3.linkBody.targetFid","typeLabel":"integer\u003cuint64>"},"displayTimestamp":{"title":"Original Timestamp","description":"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.","type":"integer","format":"int64","example":48994466,"uniqueKey":"data.oneOf.3.linkBody.displayTimestamp","typeLabel":"integer\u003cint64>"}},"isRequired":true,"uniqueKey":"data.oneOf.3.linkBody","typeLabel":"object"},"type":{"type":"string","description":"Type of the MessageBody.\n- MESSAGE_TYPE_CAST_ADD: Add a new Cast\n- MESSAGE_TYPE_CAST_REMOVE: Remove an existing Cast\n- MESSAGE_TYPE_REACTION_ADD: Add a Reaction to a Cast\n- MESSAGE_TYPE_REACTION_REMOVE: Remove a Reaction from a Cast\n- MESSAGE_TYPE_LINK_ADD: Add a new Link\n- MESSAGE_TYPE_LINK_REMOVE: Remove an existing Link\n- MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS: Add a Verification of an Ethereum Address\n- MESSAGE_TYPE_VERIFICATION_REMOVE: Remove a Verification\n- MESSAGE_TYPE_USER_DATA_ADD: Add metadata about a user\n- MESSAGE_TYPE_USERNAME_PROOF: Add or replace a username proof\n- MESSAGE_TYPE_FRAME_ACTION: A Farcaster Frame action","default":"MESSAGE_TYPE_CAST_ADD","enum":["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"],"uniqueKey":"data.oneOf.3.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.oneOf.3","typeLabel":"object"},{"type":"object","description":"Represents a message that adds verification of ownership for an Ethereum or Solana address to a user's profile. This verification proves that the user controls the specified blockchain address.","required":["verificationAddEthAddressBody","fid","network","timestamp"],"properties":{"fid":{"title":"Farcaster ID of the user producing the message","description":"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.","type":"integer","format":"uint64","example":2,"isRequired":true,"uniqueKey":"data.oneOf.4.fid","typeLabel":"integer\u003cuint64>"},"timestamp":{"description":"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.","type":"integer","format":"int64","example":48994466,"isRequired":true,"uniqueKey":"data.oneOf.4.timestamp","typeLabel":"integer\u003cint64>"},"network":{"type":"string","description":"Farcaster network the message is intended for.\n- FARCASTER_NETWORK_MAINNET: Public primary network\n- FARCASTER_NETWORK_TESTNET: Public test network\n- FARCASTER_NETWORK_DEVNET: Private test network","default":"FARCASTER_NETWORK_MAINNET","enum":["FARCASTER_NETWORK_MAINNET","FARCASTER_NETWORK_TESTNET","FARCASTER_NETWORK_DEVNET"],"isRequired":true,"uniqueKey":"data.oneOf.4.network","typeLabel":"enum\u003cstring>"},"verificationAddEthAddressBody":{"type":"object","description":"Contains the blockchain address being verified, along with cryptographic proof of ownership through a signature.","required":["address","ethSignature","blockHash"],"properties":{"address":{"title":"Blockchain Address","description":"The Ethereum (0x-prefixed) or Solana address that the user is claiming ownership of. Must match the address that produced the signature.","pattern":"^(?:0x[a-fA-F0-9]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$","type":"string","example":"0x1234567890123456789012345678901234567890","isRequired":true,"uniqueKey":"data.oneOf.4.verificationAddEthAddressBody.address","typeLabel":"string"},"ethSignature":{"title":"Cryptographic Signature","description":"Base64-encoded signature produced by the blockchain address, proving ownership. For Ethereum, this is an ECDSA signature of a specific message format.","pattern":"^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$","type":"string","format":"byte","example":"4mGN6TACFqXUVU9RpwLDGCqgqiV1GidEFk9eKF0L0h6JNqmN3kRM9NMPnjUnkh8oL6+jFeQJ9YVuKX4F9EqGiAE=","isRequired":true,"uniqueKey":"data.oneOf.4.verificationAddEthAddressBody.ethSignature","typeLabel":"string\u003cbyte>"},"blockHash":{"title":"Block Hash","description":"The hash of the most recent block when the signature was created. Used to verify the approximate time of signature creation.","pattern":"^(0x[a-fA-F0-9]{64}|[1-9A-HJ-NP-Za-km-z]{44})$","type":"string","example":"0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef","isRequired":true,"uniqueKey":"data.oneOf.4.verificationAddEthAddressBody.blockHash","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.oneOf.4.verificationAddEthAddressBody","typeLabel":"object"},"type":{"type":"string","description":"Type of the MessageBody.\n- MESSAGE_TYPE_CAST_ADD: Add a new Cast\n- MESSAGE_TYPE_CAST_REMOVE: Remove an existing Cast\n- MESSAGE_TYPE_REACTION_ADD: Add a Reaction to a Cast\n- MESSAGE_TYPE_REACTION_REMOVE: Remove a Reaction from a Cast\n- MESSAGE_TYPE_LINK_ADD: Add a new Link\n- MESSAGE_TYPE_LINK_REMOVE: Remove an existing Link\n- MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS: Add a Verification of an Ethereum Address\n- MESSAGE_TYPE_VERIFICATION_REMOVE: Remove a Verification\n- MESSAGE_TYPE_USER_DATA_ADD: Add metadata about a user\n- MESSAGE_TYPE_USERNAME_PROOF: Add or replace a username proof\n- MESSAGE_TYPE_FRAME_ACTION: A Farcaster Frame action","default":"MESSAGE_TYPE_CAST_ADD","enum":["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"],"uniqueKey":"data.oneOf.4.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.oneOf.4","typeLabel":"object"},{"type":"object","description":"Represents a message that removes an existing blockchain address verification from a user's profile. This allows users to disassociate previously verified addresses from their account.","required":["verificationRemoveBody","fid","network","timestamp"],"properties":{"fid":{"title":"Farcaster ID of the user producing the message","description":"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.","type":"integer","format":"uint64","example":2,"isRequired":true,"uniqueKey":"data.oneOf.5.fid","typeLabel":"integer\u003cuint64>"},"timestamp":{"description":"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.","type":"integer","format":"int64","example":48994466,"isRequired":true,"uniqueKey":"data.oneOf.5.timestamp","typeLabel":"integer\u003cint64>"},"network":{"type":"string","description":"Farcaster network the message is intended for.\n- FARCASTER_NETWORK_MAINNET: Public primary network\n- FARCASTER_NETWORK_TESTNET: Public test network\n- FARCASTER_NETWORK_DEVNET: Private test network","default":"FARCASTER_NETWORK_MAINNET","enum":["FARCASTER_NETWORK_MAINNET","FARCASTER_NETWORK_TESTNET","FARCASTER_NETWORK_DEVNET"],"isRequired":true,"uniqueKey":"data.oneOf.5.network","typeLabel":"enum\u003cstring>"},"verificationRemoveBody":{"type":"object","description":"Contains the blockchain address for which the verification should be removed from the user's profile.","required":["address"],"properties":{"address":{"title":"Blockchain Address","description":"The Ethereum address (0x-prefixed) for which the verification should be removed. Must match a previously verified address in the user's profile.","pattern":"^0x[A-Za-z0-9]{40}$","type":"string","example":"0x1234567890123456789012345678901234567890","isRequired":true,"uniqueKey":"data.oneOf.5.verificationRemoveBody.address","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.oneOf.5.verificationRemoveBody","typeLabel":"object"},"type":{"type":"string","description":"Type of the MessageBody.\n- MESSAGE_TYPE_CAST_ADD: Add a new Cast\n- MESSAGE_TYPE_CAST_REMOVE: Remove an existing Cast\n- MESSAGE_TYPE_REACTION_ADD: Add a Reaction to a Cast\n- MESSAGE_TYPE_REACTION_REMOVE: Remove a Reaction from a Cast\n- MESSAGE_TYPE_LINK_ADD: Add a new Link\n- MESSAGE_TYPE_LINK_REMOVE: Remove an existing Link\n- MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS: Add a Verification of an Ethereum Address\n- MESSAGE_TYPE_VERIFICATION_REMOVE: Remove a Verification\n- MESSAGE_TYPE_USER_DATA_ADD: Add metadata about a user\n- MESSAGE_TYPE_USERNAME_PROOF: Add or replace a username proof\n- MESSAGE_TYPE_FRAME_ACTION: A Farcaster Frame action","default":"MESSAGE_TYPE_CAST_ADD","enum":["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"],"uniqueKey":"data.oneOf.5.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.oneOf.5","typeLabel":"object"},{"type":"object","description":"Represents a message that updates a user's profile metadata. This can include changes to profile picture, display name, bio, URL, or preferred username. Each update modifies a single profile field.","required":["userDataBody","fid","network","timestamp"],"properties":{"fid":{"title":"Farcaster ID of the user producing the message","description":"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.","type":"integer","format":"uint64","example":2,"isRequired":true,"uniqueKey":"data.oneOf.6.fid","typeLabel":"integer\u003cuint64>"},"timestamp":{"description":"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.","type":"integer","format":"int64","example":48994466,"isRequired":true,"uniqueKey":"data.oneOf.6.timestamp","typeLabel":"integer\u003cint64>"},"network":{"type":"string","description":"Farcaster network the message is intended for.\n- FARCASTER_NETWORK_MAINNET: Public primary network\n- FARCASTER_NETWORK_TESTNET: Public test network\n- FARCASTER_NETWORK_DEVNET: Private test network","default":"FARCASTER_NETWORK_MAINNET","enum":["FARCASTER_NETWORK_MAINNET","FARCASTER_NETWORK_TESTNET","FARCASTER_NETWORK_DEVNET"],"isRequired":true,"uniqueKey":"data.oneOf.6.network","typeLabel":"enum\u003cstring>"},"userDataBody":{"type":"object","description":"Contains the type of profile metadata being updated and its new value.","required":["type","value"],"properties":{"type":{"type":"string","description":"Specifies which profile field is being updated (e.g., profile picture, display name, bio).","default":"USER_DATA_TYPE_PFP","enum":["USER_DATA_TYPE_PFP","USER_DATA_TYPE_DISPLAY","USER_DATA_TYPE_BIO","USER_DATA_TYPE_URL","USER_DATA_TYPE_USERNAME"],"isRequired":true,"uniqueKey":"data.oneOf.6.userDataBody.type","typeLabel":"enum\u003cstring>"},"value":{"title":"Profile Field Value","description":"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.","type":"string","example":"https://i.imgur.com/123abc.jpg","isRequired":true,"uniqueKey":"data.oneOf.6.userDataBody.value","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.oneOf.6.userDataBody","typeLabel":"object"},"type":{"type":"string","description":"Type of the MessageBody.\n- MESSAGE_TYPE_CAST_ADD: Add a new Cast\n- MESSAGE_TYPE_CAST_REMOVE: Remove an existing Cast\n- MESSAGE_TYPE_REACTION_ADD: Add a Reaction to a Cast\n- MESSAGE_TYPE_REACTION_REMOVE: Remove a Reaction from a Cast\n- MESSAGE_TYPE_LINK_ADD: Add a new Link\n- MESSAGE_TYPE_LINK_REMOVE: Remove an existing Link\n- MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS: Add a Verification of an Ethereum Address\n- MESSAGE_TYPE_VERIFICATION_REMOVE: Remove a Verification\n- MESSAGE_TYPE_USER_DATA_ADD: Add metadata about a user\n- MESSAGE_TYPE_USERNAME_PROOF: Add or replace a username proof\n- MESSAGE_TYPE_FRAME_ACTION: A Farcaster Frame action","default":"MESSAGE_TYPE_CAST_ADD","enum":["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"],"uniqueKey":"data.oneOf.6.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.oneOf.6","typeLabel":"object"},{"type":"object","description":"Common properties shared by all Farcaster message types. These properties provide essential metadata about the message's origin, timing, and network context.","required":["usernameProofBody","fid","network","timestamp"],"properties":{"fid":{"title":"Farcaster ID of the user producing the message","description":"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.","type":"integer","format":"uint64","example":2,"isRequired":true,"uniqueKey":"data.oneOf.7.fid","typeLabel":"integer\u003cuint64>"},"timestamp":{"description":"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.","type":"integer","format":"int64","example":48994466,"isRequired":true,"uniqueKey":"data.oneOf.7.timestamp","typeLabel":"integer\u003cint64>"},"network":{"type":"string","description":"Farcaster network the message is intended for.\n- FARCASTER_NETWORK_MAINNET: Public primary network\n- FARCASTER_NETWORK_TESTNET: Public test network\n- FARCASTER_NETWORK_DEVNET: Private test network","default":"FARCASTER_NETWORK_MAINNET","enum":["FARCASTER_NETWORK_MAINNET","FARCASTER_NETWORK_TESTNET","FARCASTER_NETWORK_DEVNET"],"isRequired":true,"uniqueKey":"data.oneOf.7.network","typeLabel":"enum\u003cstring>"},"usernameProofBody":{"type":"object","properties":{"timestamp":{"description":"Seconds since Unix Epoch which began on Jan 1, 1970 00:00:00 UTC","type":"integer","format":"uint64","isRequired":true,"uniqueKey":"data.oneOf.7.usernameProofBody.timestamp","typeLabel":"integer\u003cuint64>"},"name":{"type":"string","example":"neynar","isRequired":true,"uniqueKey":"data.oneOf.7.usernameProofBody.name","typeLabel":"string"},"owner":{"pattern":"^0x[0-9a-fA-F]{40}$","type":"string","isRequired":true,"uniqueKey":"data.oneOf.7.usernameProofBody.owner","typeLabel":"string"},"signature":{"pattern":"^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$","type":"string","format":"byte","isRequired":true,"uniqueKey":"data.oneOf.7.usernameProofBody.signature","typeLabel":"string\u003cbyte>"},"fid":{"type":"integer","description":"The FID of the user who owns this username proof","format":"uint64","minimum":1,"example":1,"isRequired":true,"uniqueKey":"data.oneOf.7.usernameProofBody.fid","typeLabel":"integer\u003cuint64>"},"type":{"type":"string","default":"USERNAME_TYPE_FNAME","enum":["USERNAME_TYPE_FNAME","USERNAME_TYPE_ENS_L1"],"isRequired":true,"uniqueKey":"data.oneOf.7.usernameProofBody.type","typeLabel":"enum\u003cstring>"}},"required":["timestamp","name","owner","signature","fid","type"],"isRequired":true,"uniqueKey":"data.oneOf.7.usernameProofBody","typeLabel":"object"},"type":{"type":"string","description":"Type of the MessageBody.\n- MESSAGE_TYPE_CAST_ADD: Add a new Cast\n- MESSAGE_TYPE_CAST_REMOVE: Remove an existing Cast\n- MESSAGE_TYPE_REACTION_ADD: Add a Reaction to a Cast\n- MESSAGE_TYPE_REACTION_REMOVE: Remove a Reaction from a Cast\n- MESSAGE_TYPE_LINK_ADD: Add a new Link\n- MESSAGE_TYPE_LINK_REMOVE: Remove an existing Link\n- MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS: Add a Verification of an Ethereum Address\n- MESSAGE_TYPE_VERIFICATION_REMOVE: Remove a Verification\n- MESSAGE_TYPE_USER_DATA_ADD: Add metadata about a user\n- MESSAGE_TYPE_USERNAME_PROOF: Add or replace a username proof\n- MESSAGE_TYPE_FRAME_ACTION: A Farcaster Frame action","default":"MESSAGE_TYPE_CAST_ADD","enum":["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"],"uniqueKey":"data.oneOf.7.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.oneOf.7","typeLabel":"object"},{"type":"object","description":"Represents a user's interaction with a Farcaster Frame, which is an interactive element embedded within a cast. Frames allow users to engage with content through clickable buttons, creating interactive experiences within the Farcaster network.","required":["frameActionBody","fid","network","timestamp"],"properties":{"fid":{"title":"Farcaster ID of the user producing the message","description":"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.","type":"integer","format":"uint64","example":2,"isRequired":true,"uniqueKey":"data.oneOf.8.fid","typeLabel":"integer\u003cuint64>"},"timestamp":{"description":"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.","type":"integer","format":"int64","example":48994466,"isRequired":true,"uniqueKey":"data.oneOf.8.timestamp","typeLabel":"integer\u003cint64>"},"network":{"type":"string","description":"Farcaster network the message is intended for.\n- FARCASTER_NETWORK_MAINNET: Public primary network\n- FARCASTER_NETWORK_TESTNET: Public test network\n- FARCASTER_NETWORK_DEVNET: Private test network","default":"FARCASTER_NETWORK_MAINNET","enum":["FARCASTER_NETWORK_MAINNET","FARCASTER_NETWORK_TESTNET","FARCASTER_NETWORK_DEVNET"],"isRequired":true,"uniqueKey":"data.oneOf.8.network","typeLabel":"enum\u003cstring>"},"frameActionBody":{"type":"object","description":"Contains the details of the frame interaction, including which button was pressed and the associated cast and URL.","required":["url","buttonIndex","castId"],"properties":{"url":{"description":"The URL associated with the frame action. This typically points to the frame's content or the destination that handles the interaction.","type":"string","format":"uri","example":"https://frames.farcaster.xyz/frame/123","isRequired":true,"uniqueKey":"data.oneOf.8.frameActionBody.url","typeLabel":"string\u003curi>"},"buttonIndex":{"description":"Identifies which button the user clicked in the frame. Frames can have up to 4 buttons, numbered from 1 to 4.","title":"Button Index","type":"integer","format":"int32","minimum":1,"maximum":4,"example":1,"isRequired":true,"uniqueKey":"data.oneOf.8.frameActionBody.buttonIndex","typeLabel":"integer\u003cint32>"},"castId":{"type":"object","description":"The unique identifier of the cast containing the frame that was interacted with.","required":["fid","hash"],"properties":{"fid":{"title":"Fid of the user who created the cast","description":"The Farcaster ID (FID) of the user who created the cast. Required to uniquely identify the cast's author in the network.","type":"integer","format":"uint64","example":2,"isRequired":true,"uniqueKey":"data.oneOf.8.frameActionBody.castId.fid","typeLabel":"integer\u003cuint64>"},"hash":{"description":"A unique hash that identifies a specific cast within the creator's posts. Generated using HASH_SCHEME_BLAKE3 of the cast's content.","pattern":"^0x[0-9a-fA-F]{40}$","type":"string","example":"0x03aff391a6eb1772b20b4ead9a89f732be75fe27","isRequired":true,"uniqueKey":"data.oneOf.8.frameActionBody.castId.hash","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.oneOf.8.frameActionBody.castId","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.oneOf.8.frameActionBody","typeLabel":"object"},"type":{"type":"string","description":"Type of the MessageBody.\n- MESSAGE_TYPE_CAST_ADD: Add a new Cast\n- MESSAGE_TYPE_CAST_REMOVE: Remove an existing Cast\n- MESSAGE_TYPE_REACTION_ADD: Add a Reaction to a Cast\n- MESSAGE_TYPE_REACTION_REMOVE: Remove a Reaction from a Cast\n- MESSAGE_TYPE_LINK_ADD: Add a new Link\n- MESSAGE_TYPE_LINK_REMOVE: Remove an existing Link\n- MESSAGE_TYPE_VERIFICATION_ADD_ETH_ADDRESS: Add a Verification of an Ethereum Address\n- MESSAGE_TYPE_VERIFICATION_REMOVE: Remove a Verification\n- MESSAGE_TYPE_USER_DATA_ADD: Add metadata about a user\n- MESSAGE_TYPE_USERNAME_PROOF: Add or replace a username proof\n- MESSAGE_TYPE_FRAME_ACTION: A Farcaster Frame action","default":"MESSAGE_TYPE_CAST_ADD","enum":["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"],"uniqueKey":"data.oneOf.8.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data.oneOf.8","typeLabel":"object"}],"isRequired":true,"uniqueKey":"data","typeLabel":"object"},"hash":{"title":"Hash digest of data","pattern":"^0x[0-9a-fA-F]{40}$","type":"string","example":"0xd2b1ddc6c88e865a33cb1a565e0058d757042974","isRequired":true,"uniqueKey":"hash","typeLabel":"string"},"hashScheme":{"type":"string","description":"Type of hashing scheme used to produce a digest of MessageData. - HASH_SCHEME_BLAKE3: Default scheme for hashing MessageData\n","default":"HASH_SCHEME_BLAKE3","enum":["HASH_SCHEME_BLAKE3"],"isRequired":true,"uniqueKey":"hashScheme","typeLabel":"enum\u003cstring>"},"signature":{"title":"Signature of the hash digest","pattern":"^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$","type":"string","format":"byte","isRequired":true,"uniqueKey":"signature","typeLabel":"string\u003cbyte>"},"signatureScheme":{"type":"string","description":"Type of signature scheme used to sign the Message hash\n- SIGNATURE_SCHEME_ED25519: Ed25519 signature (default)\n- SIGNATURE_SCHEME_EIP712: ECDSA signature using EIP-712 scheme","default":"SIGNATURE_SCHEME_ED25519","enum":["SIGNATURE_SCHEME_ED25519","SIGNATURE_SCHEME_EIP712"],"isRequired":true,"uniqueKey":"signatureScheme","typeLabel":"enum\u003cstring>"},"signer":{"title":"Public key or address of the key pair that produced the signature","pattern":"^0x[0-9a-fA-F]+$","type":"string","isRequired":true,"uniqueKey":"signer","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"data":{"fid":2,"timestamp":48994466,"network":"FARCASTER_NETWORK_MAINNET","castAddBody":{"embedsDeprecated":["\u003cstring>"],"mentions":[2],"text":"\u003cstring>","mentionsPositions":[123],"embeds":[{"castId":{"fid":2,"hash":"0x03aff391a6eb1772b20b4ead9a89f732be75fe27"}}],"parentCastId":{"fid":2,"hash":"0x03aff391a6eb1772b20b4ead9a89f732be75fe27"},"parentUrl":"chain://eip155:1/erc721:0x39d89b649ffa044383333d297e325d42d31329b2"},"type":"MESSAGE_TYPE_CAST_ADD"},"hash":"0xd2b1ddc6c88e865a33cb1a565e0058d757042974","hashScheme":"HASH_SCHEME_BLAKE3","signature":"aSDinaTvuI8gbWludGxpZnk=","signatureScheme":"SIGNATURE_SCHEME_ED25519","signer":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"8202f230-b233-43f1-af9e-ec28fd076302":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"required":["code","details","errCode","metadata","name","presentable"],"type":"object","properties":{"errCode":{"type":"string","isRequired":true,"uniqueKey":"errCode","typeLabel":"string"},"presentable":{"type":"boolean","isRequired":true,"uniqueKey":"presentable","typeLabel":"boolean"},"name":{"type":"string","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"code":{"type":"integer","isRequired":true,"uniqueKey":"code","typeLabel":"integer"},"details":{"type":"string","isRequired":true,"uniqueKey":"details","typeLabel":"string"},"metadata":{"required":["errcode"],"type":"object","properties":{"errcode":{"type":"array","items":{"type":"string","uniqueKey":"metadata.errcode.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"metadata.errcode","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"metadata","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"errCode":"\u003cstring>","presentable":true,"name":"\u003cstring>","code":123,"details":"\u003cstring>","metadata":{"errcode":["\u003cstring>"]}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"b7483820-2b6c-4ab9-a6d8-c8dd287d5e19":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"API key to authorize requests","x-default":"NEYNAR_API_DOCS","scopes":[]}}},"servers":{"d41b4f91-8b80-488e-9f82-f2fbf85f0815":{"url":"https://snapchain-api.neynar.com"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","description":"API key to authorize requests","x-default":"NEYNAR_API_DOCS","scopes":[]},"schema":{"title":"x-api-key","type":"string","description":"API key to authorize requests","isRequired":true,"default":"NEYNAR_API_DOCS","typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"x-api-key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"openapi/hub-api/openapi.yaml"},"subdomain":"neynar","siteName":"Neynar","title":"Neynar Documentation","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-01-27T22:51:25.515Z","originalFileLocation":"reference/publish-message.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Submit a message to the Farcaster network.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Neynar\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"index, follow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/neynar/st0_6iz_-a2LKQkt/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/neynar/st0_6iz_-a2LKQkt/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/neynar/st0_6iz_-a2LKQkt/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/neynar/st0_6iz_-a2LKQkt/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/neynar/st0_6iz_-a2LKQkt/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/neynar/st0_6iz_-a2LKQkt/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/neynar/st0_6iz_-a2LKQkt/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/neynar/st0_6iz_-a2LKQkt/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/neynar/st0_6iz_-a2LKQkt/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Neynar Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Comprehensive documentation for Neynar APIs and SDKs\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Neynar Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.neynar.com/reference/publish-message\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://neynar.mintlify.site/_mintlify/api/og/v2?division=Message\u0026amp;title=Submit+signed+message\u0026amp;description=Submit+a+message+to+the+Farcaster+network.\u0026amp;theme=186d51285df79b1217aa5b84\u0026amp;signature=3a524305ac90d9231afcf865eddcc5abec3aef4ca82b3604ffd1ce739144d269\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Neynar Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Comprehensive documentation for Neynar APIs and SDKs\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://neynar.mintlify.site/_mintlify/api/og/v2?division=Message\u0026amp;title=Submit+signed+message\u0026amp;description=Submit+a+message+to+the+Farcaster+network.\u0026amp;theme=186d51285df79b1217aa5b84\u0026amp;signature=3a524305ac90d9231afcf865eddcc5abec3aef4ca82b3604ffd1ce739144d269\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/neynar/st0_6iz_-a2LKQkt/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Neynar\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#482b82\">\u003cmeta data-mint-head name=\"referrer\" content=\"strict-origin-when-cross-origin\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.neynar.com/reference/publish-message\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/reference/publish-message.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.neynar.com/#organization\",\"name\":\"Neynar\",\"url\":\"https://docs.neynar.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/neynar/R9a_lt8Wf1SbwKa6/logo/farcaster-icon-light.svg?fit=max\u0026auto=format\u0026n=R9a_lt8Wf1SbwKa6\u0026q=85\u0026s=68441f4612c3fb569fd6cfd574f7be38\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.neynar.com#website\",\"name\":\"Neynar\",\"url\":\"https://docs.neynar.com\",\"publisher\":{\"@id\":\"https://docs.neynar.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.neynar.com/reference/publish-message#webpage\",\"url\":\"https://docs.neynar.com/reference/publish-message\",\"name\":\"Submit signed message\",\"description\":\"Submit a message to the Farcaster network.\",\"dateModified\":\"2026-01-27T22:51:25.515Z\",\"isPartOf\":{\"@id\":\"https://docs.neynar.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.neynar.com/reference/publish-message#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.neynar.com/reference/publish-message#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Farcaster Hub API\",\"item\":\"https://docs.neynar.com/reference/lookup-hub-info\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Submit signed message\",\"item\":\"https://docs.neynar.com/reference/publish-message\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.neynar.com/reference/publish-message#apireference\",\"headline\":\"Submit signed message\",\"name\":\"Submit signed message\",\"description\":\"Submit a message to the Farcaster network.\",\"url\":\"https://docs.neynar.com/reference/publish-message\",\"mainEntityOfPage\":{\"@id\":\"https://docs.neynar.com/reference/publish-message#webpage\"},\"dateModified\":\"2026-01-27T22:51:25.515Z\",\"keywords\":\"publish message, neynar api, farcaster message, submit message, message publishing, v1 api, message submission\",\"publisher\":{\"@id\":\"https://docs.neynar.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.neynar.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Neynar\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Neynar","nav":{"global":{"anchors":[{"anchor":"Status","icon":"signal","href":"https://status.neynar.com/"},{"anchor":"Blog","icon":"newspaper","href":"https://neynar.com/blog"}]},"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/"}]},{"tab":"Tutorials","pages":[{"title":"Tutorials","href":"/docs/getting-started-with-neynar"}]},{"tab":"REST API Reference","groups":[{"group":"Overview","pages":[{"title":"Quickstart","href":"/reference/quickstart"},{"title":"Rate Limits","href":"/reference/what-are-the-rate-limits-on-neynar-apis"},{"title":"Credits Pricing","url":"https://dev.neynar.com/pricing","href":"/external-link-0"}]},{"group":"Farcaster","pages":[{"group":"User","pages":[{"group":"Fetch User Information","pages":[{"title":"Fetch User Information","sidebarTitle":"Overview","href":"/reference/fetch-user-information"},{"openapi":"get /v2/farcaster/user/search/","title":"Search for Usernames","href":"/reference/search-user"},{"openapi":"get /v2/farcaster/user/bulk/","sidebarTitle":"By FIDs (Farcaster IDs)","title":"By FIDs","href":"/reference/fetch-bulk-users"},{"openapi":"get /v2/farcaster/user/bulk-by-address/","title":"By Eth or Sol addresses","href":"/reference/fetch-bulk-users-by-eth-or-sol-address"},{"openapi":"get /v2/farcaster/user/custody-address/","title":"By custody-address","href":"/reference/lookup-user-by-custody-address"},{"openapi":"get /v2/farcaster/user/by_username/","title":"By username","href":"/reference/lookup-user-by-username"},{"openapi":"get /v2/farcaster/user/by_x_username/","title":"By X username","href":"/reference/lookup-users-by-x-username"},{"openapi":"get /v2/farcaster/user/by_location/","title":"By location","href":"/reference/fetch-users-by-location"},{"openapi":"get /v2/farcaster/user/verifications/","title":"Fetch verifications","href":"/reference/fetch-verifications"}]},{"group":"Fetch User's Casts","pages":[{"openapi":"get /v2/farcaster/feed/user/popular/","title":"10 most popular casts","href":"/reference/fetch-popular-casts-by-user"},{"openapi":"get /v2/farcaster/feed/user/replies_and_recasts/","title":"Replies and recasts","href":"/reference/fetch-replies-and-recasts-for-user"},{"openapi":"get /v2/farcaster/feed/user/casts/","title":"Chronologically","href":"/reference/fetch-casts-for-user"}]},{"group":"Register New User","pages":[{"title":"Register New user","sidebarTitle":"Overview","href":"/reference/register-new-user"},{"openapi":"get /v2/farcaster/user/fid/","title":"Fetch fresh FID","href":"/reference/get-fresh-account-fid"},{"openapi":"post /v2/farcaster/user/","title":"Register new account","href":"/reference/register-account"}]},{"group":"Update User Profile","pages":[{"title":"Overview","sidebarTitle":"Overview","href":"/reference/update-user-profile-1"},{"openapi":"patch /v2/farcaster/user/","title":"Update user profile","href":"/reference/update-user"},{"openapi":"post /v2/farcaster/user/verification/","title":"Add verification","href":"/reference/publish-verification"},{"openapi":"delete /v2/farcaster/user/verification/","title":"Delete verification","href":"/reference/delete-verification"}]},{"openapi":"get /v2/farcaster/user/interactions/","title":"User interactions","href":"/reference/fetch-user-interactions"},{"openapi":"get /v2/farcaster/login/authorize/","title":"Fetch authorization url","href":"/reference/fetch-authorization-url"}]},{"group":"Cast","pages":[{"openapi":"get /v2/farcaster/cast/embed/crawl/","title":"Embedded URL metadata","href":"/reference/fetch-embedded-url-metadata"},{"openapi":"get /v2/farcaster/cast/","title":"By hash or URL","href":"/reference/lookup-cast-by-hash-or-url"},{"openapi":"post /v2/farcaster/cast/","title":"Post a cast","href":"/reference/publish-cast"},{"openapi":"delete /v2/farcaster/cast/","title":"Delete a cast","href":"/reference/delete-cast"},{"openapi":"get /v2/farcaster/casts/","title":"Bulk fetch casts","href":"/reference/fetch-bulk-casts"},{"openapi":"get /v2/farcaster/cast/search/","title":"Search for casts","href":"/reference/search-casts"},{"openapi":"get /v2/farcaster/cast/conversation/","title":"Conversation for a cast","href":"/reference/lookup-cast-conversation"},{"openapi":"get /v2/farcaster/cast/conversation/summary/","sidebarTitle":"Conversation summary","title":"Cast conversation summary","href":"/reference/lookup-cast-conversation-summary"},{"openapi":"get /v2/farcaster/cast/composer_actions/list/","title":null,"href":"/reference/fetch-composer-actions"},{"openapi":"get /v2/farcaster/cast/metrics/","title":"Metrics for casts","href":"/reference/fetch-cast-metrics"},{"openapi":"get /v2/farcaster/cast/quotes/","title":"Cast Quotes","href":"/reference/fetch-cast-quotes"}]},{"group":"Signer","pages":[{"group":"Neynar Managed","pages":[{"openapi":"get /v2/farcaster/signer/","title":"Status","href":"/reference/lookup-signer"},{"openapi":"post /v2/farcaster/signer/","title":"Create signer","href":"/reference/create-signer"},{"openapi":"post /v2/farcaster/signer/signed_key/","title":"Register Signed Key","href":"/reference/register-signed-key"}]},{"group":"Developer Managed","pages":[{"openapi":"get /v2/farcaster/signer/developer_managed/","title":"Status by public key","href":"/reference/lookup-developer-managed-signer"},{"openapi":"post /v2/farcaster/signer/developer_managed/signed_key/","title":"Register Signed Key","href":"/reference/register-signed-key-for-developer-managed-signer"},{"openapi":"post /v2/farcaster/message/","title":"Publish message","href":"/reference/publish-message-to-farcaster"}]},{"openapi":"get /v2/farcaster/signer/list/","title":"List signers","href":"/reference/fetch-signers"}]},{"group":"Auth Address","pages":[{"group":"Developer Managed","pages":[{"openapi":"post /v2/farcaster/auth_address/developer_managed/signed_key/","title":"Register Signed Key","href":"/reference/register-signed-key-for-developer-managed-auth-address"},{"openapi":"get /v2/farcaster/auth_address/developer_managed/","title":"Status by auth address","href":"/reference/lookup-developer-managed-auth-address"}]}]},{"group":"Feed","pages":[{"group":"User","pages":[{"openapi":"get /v2/farcaster/feed/following/","title":"Following","href":"/reference/fetch-user-following-feed"}]},{"group":"Channels","pages":[{"openapi":"get /v2/farcaster/feed/channels/","title":"By channel IDs","href":"/reference/fetch-feed-by-channel-ids"},{"openapi":"get /v2/farcaster/feed/parent_urls/","title":"By parent URLs","href":"/reference/fetch-feed-by-parent-urls"}]},{"openapi":"get /v2/farcaster/feed/","title":"By filters","href":"/reference/fetch-feed"},{"openapi":"get /v2/farcaster/feed/trending/","title":null,"href":"/reference/fetch-trending-feed"}]},{"group":"Reaction","pages":[{"openapi":"post /v2/farcaster/reaction/","title":"Post a reaction","href":"/reference/publish-reaction"},{"openapi":"delete /v2/farcaster/reaction/","title":"Delete reaction","href":"/reference/delete-reaction"},{"openapi":"get /v2/farcaster/reactions/user/","title":"Reactions for user","href":"/reference/fetch-user-reactions"},{"openapi":"get /v2/farcaster/reactions/cast/","title":"Reactions for cast","href":"/reference/fetch-cast-reactions"}]},{"group":"Follow","pages":[{"openapi":"get /v2/farcaster/followers/","title":"Followers","href":"/reference/fetch-user-followers"},{"openapi":"get /v2/farcaster/followers/relevant/","title":"Relevant followers","href":"/reference/fetch-relevant-followers"},{"openapi":"get /v2/farcaster/followers/reciprocal/","title":"Reciprocal Followers","href":"/reference/fetch-user-reciprocal-followers"},{"openapi":"get /v2/farcaster/following/","title":"Following","href":"/reference/fetch-user-following"},{"openapi":"get /v2/farcaster/following/suggested/","title":"Suggest Follows","href":"/reference/fetch-follow-suggestions"},{"openapi":"get /v2/farcaster/user/best_friends/","title":"Best friends","href":"/reference/best-friends"},{"group":"Update Follow / Unfollow","pages":[{"title":"Update Follow / Unfollow","sidebarTitle":"Overview","href":"/reference/update-follow-unfollow"},{"openapi":"post /v2/farcaster/user/follow/","title":"Follow user","href":"/reference/follow-user"},{"openapi":"delete /v2/farcaster/user/follow/","title":"Unfollow user","href":"/reference/unfollow-user"}]}]},{"group":"Mini Apps","pages":[{"group":"Notifications","pages":[{"openapi":"get /v2/farcaster/frame/notification_tokens/","title":"List of mini app notification tokens","href":"/reference/fetch-notification-tokens"},{"openapi":"post /v2/farcaster/frame/notifications/","title":"Send notifications","href":"/reference/publish-frame-notifications"}]},{"openapi":"get /v2/farcaster/frame/catalog/","title":"Mini apps catalog","href":"/reference/fetch-frame-catalog"},{"openapi":"get /v2/farcaster/frame/relevant/","title":"Relevant mini apps","href":"/reference/fetch-frame-relevant"},{"openapi":"get /v2/farcaster/frame/search/","title":"Search mini apps","href":"/reference/search-frames"}]},{"group":"Mini App Hosts","pages":[{"openapi":"get /v2/farcaster/app_host/user/event/","title":"Generate event","href":"/reference/app-host-get-event"},{"openapi":"post /v2/farcaster/app_host/user/event/","title":"Send event","href":"/reference/app-host-post-event"},{"openapi":"get /v2/farcaster/app_host/user/state/","title":"Enabled notifications","href":"/reference/app-host-get-user-state"}]},{"group":"Onchain","pages":[{"openapi":"get /v2/farcaster/user/balance/","title":"Token balance","href":"/reference/fetch-user-balance"},{"openapi":"get /v2/farcaster/fungible/owner/relevant/","title":"Relevant owners","href":"/reference/fetch-relevant-fungible-owners"},{"openapi":"get /v2/farcaster/fungible/trending/","title":"Trending fungibles","href":"/reference/fetch-trending-fungibles"},{"openapi":"get /v2/farcaster/fungibles/","title":"Fetch fungibles","href":"/reference/fetch-fungibles"},{"openapi":"get /v2/farcaster/fungible/trades/","title":"Get fungible trades","href":"/reference/fetch-fungible-trades"},{"openapi":"post /v2/farcaster/fungible/send/","title":"Send fungibles","href":"/reference/send-fungibles-to-users"},{"openapi":"post /v2/farcaster/user/register/","title":"Register Farcaster account onchain","href":"/reference/register-account-onchain"},{"openapi":"post /v2/signature/x402/","title":"Create x402 signature","href":"/reference/create-x402-signature"},{"group":"Subscribers","pages":[{"openapi":"get /v2/farcaster/user/subscriptions_created/","title":"Subscriptions created by FID","href":"/reference/fetch-subscriptions-for-fid"},{"openapi":"get /v2/farcaster/user/subscribed_to/","title":"Subscribed to","href":"/reference/fetch-subscribed-to-for-fid"},{"openapi":"get /v2/farcaster/user/subscribers/","title":"Subscribers of a user","href":"/reference/fetch-subscribers-for-fid"},{"openapi":"get /v2/stp/subscription_check/","title":"Hypersub subscription check","href":"/reference/fetch-subscription-check"}]},{"group":"NFTs","pages":[{"openapi":"post /v2/farcaster/nft/deploy/erc721/","title":"Deploy ERC-721 collection","href":"/reference/deploy-erc721"},{"openapi":"post /v2/farcaster/nft/image/","title":"Generate an NFT image","href":"/reference/generate-image"},{"openapi":"post /v2/farcaster/nft/metadata/token","title":"Upload NFT token metadata","href":"/reference/upload-token-metadata"},{"openapi":"get /v2/farcaster/nft/mint/","title":"Simulate NFT mint calldata","href":"/reference/get-nft-mint"},{"openapi":"post /v2/farcaster/nft/mint/","title":"Mint NFT(s)","href":"/reference/post-nft-mint"}]}]},{"group":"Agents","pages":[{"openapi":"get /v2/farcaster/cast/conversation/summary/","sidebarTitle":"Conversation summary","title":"Cast conversation summary","href":"/reference/lookup-cast-conversation-summary"},{"openapi":"get /v2/farcaster/user/interactions/","title":"User interactions","href":"/reference/fetch-user-interactions"},{"group":"Dynamic Transaction Frames","pages":[{"openapi":"post /v2/farcaster/frame/transaction/pay/","title":"Create transaction pay mini app","href":"/reference/create-transaction-pay-frame"},{"openapi":"get /v2/farcaster/frame/transaction/pay/","title":"Get transaction pay mini app","href":"/reference/get-transaction-pay-frame"}]}]},{"group":"Notifications","pages":[{"openapi":"get /v2/farcaster/notifications/","title":"For user","href":"/reference/fetch-all-notifications"},{"openapi":"get /v2/farcaster/notifications/channel/","title":"For user by channel","href":"/reference/fetch-channel-notifications-for-user"},{"openapi":"get /v2/farcaster/notifications/parent_url/","title":"For user by parent_urls","href":"/reference/fetch-notifications-by-parent-url-for-user"},{"openapi":"post /v2/farcaster/notifications/seen/","title":"Mark as seen","href":"/reference/mark-notifications-as-seen"}]},{"group":"Storage","pages":[{"openapi":"get /v2/farcaster/storage/allocations/","title":"Allocation of user","href":"/reference/lookup-user-storage-allocations"},{"openapi":"get /v2/farcaster/storage/usage/","title":"Usage of user","href":"/reference/lookup-user-storage-usage"},{"openapi":"post /v2/farcaster/storage/buy/","title":"Buy storage","href":"/reference/buy-storage"}]},{"group":"Channel","pages":[{"group":"Fetch Channel Info","pages":[{"openapi":"get /v2/farcaster/channel/search/","title":"Search by ID or name","href":"/reference/search-channels"},{"openapi":"get /v2/farcaster/channel/bulk/","title":"Bulk fetch","href":"/reference/fetch-bulk-channels"},{"openapi":"get /v2/farcaster/channel/","title":"By ID or parent_url","href":"/reference/lookup-channel"}]},{"group":"Members","pages":[{"openapi":"delete /v2/farcaster/channel/member/","title":"Remove user","href":"/reference/remove-channel-member"},{"openapi":"get /v2/farcaster/channel/member/list/","title":"Fetch members","href":"/reference/fetch-channel-members"},{"openapi":"post /v2/farcaster/channel/member/invite/","title":"Invite","href":"/reference/invite-channel-member"},{"openapi":"put /v2/farcaster/channel/member/invite/","title":"Accept or reject an invite","href":"/reference/respond-channel-invite"},{"openapi":"get /v2/farcaster/channel/member/invite/list/","title":"Open invites","href":"/reference/fetch-channel-invites"}]},{"group":"Fetch Followers","pages":[{"openapi":"get /v2/farcaster/channel/followers/","title":"For channel","href":"/reference/fetch-followers-for-a-channel"},{"openapi":"get /v2/farcaster/channel/followers/relevant/","title":"Relevant followers","href":"/reference/fetch-relevant-followers-for-a-channel"}]},{"group":"User's Channels","pages":[{"openapi":"get /v2/farcaster/user/channels/","title":"Following","href":"/reference/fetch-user-channels"},{"openapi":"get /v2/farcaster/user/memberships/list/","title":"Member of","href":"/reference/fetch-user-channel-memberships"},{"openapi":"post /v2/farcaster/channel/follow/","title":"Follow a channel","href":"/reference/follow-channel"},{"openapi":"delete /v2/farcaster/channel/follow/","title":"Unfollow a channel","href":"/reference/unfollow-channel"}]},{"group":"Trending","pages":[{"openapi":"get /v2/farcaster/channel/trending/","title":"Channels by activity","href":"/reference/fetch-trending-channels"}]},{"openapi":"get /v2/farcaster/channel/list/","title":"Fetch all channels with their details","href":"/reference/fetch-all-channels"},{"openapi":"get /v2/farcaster/channel/user/","title":"Fetch channels that user is active in","href":"/reference/fetch-users-active-channels"}]},{"group":"Fname","pages":[{"openapi":"get /v2/farcaster/fname/availability/","title":"Check fname availability","href":"/reference/is-fname-available"}]},{"group":"Webhook","pages":[{"openapi":"get /v2/farcaster/webhook/","title":"Fetch a webhook","href":"/reference/lookup-webhook"},{"openapi":"post /v2/farcaster/webhook/","title":"Create a webhook","href":"/reference/publish-webhook"},{"openapi":"patch /v2/farcaster/webhook/","title":"Update webhook status","href":"/reference/update-webhook-active-status"},{"openapi":"put /v2/farcaster/webhook/","title":"Update a webhook","href":"/reference/update-webhook"},{"openapi":"delete /v2/farcaster/webhook/","title":"Delete a webhook","href":"/reference/delete-webhook"},{"openapi":"get /v2/farcaster/webhook/list/","title":"Associated webhooks of user","href":"/reference/fetch-webhooks"}]},{"group":"Action","pages":[{"openapi":"post /v2/farcaster/action/","title":"User actions across apps","href":"/reference/publish-farcaster-action"}]},{"group":"Mute","pages":[{"openapi":"get /v2/farcaster/mute/list/","title":"Muted FIDs of user","href":"/reference/fetch-mute-list"},{"openapi":"post /v2/farcaster/mute/","title":"Mute FID","href":"/reference/publish-mute"},{"openapi":"delete /v2/farcaster/mute/","title":"Unmute FID","href":"/reference/delete-mute"}]},{"group":"Block","pages":[{"openapi":"get /v2/farcaster/block/list/","title":"Blocked / Blocked by FIDs","href":"/reference/fetch-block-list"},{"openapi":"post /v2/farcaster/block/","title":"Block FID","href":"/reference/publish-block"},{"openapi":"delete /v2/farcaster/block/","title":"Unblock FID","href":"/reference/delete-block"}]},{"group":"Ban","pages":[{"openapi":"get /v2/farcaster/ban/list/","title":"Banned FIDs of app","href":"/reference/fetch-ban-list"},{"openapi":"post /v2/farcaster/ban/","title":"Ban FIDs from app","href":"/reference/publish-bans"},{"openapi":"delete /v2/farcaster/ban/","title":"Unban FIDs from app","href":"/reference/delete-bans"}]},{"group":"Login","pages":[{"openapi":"get /v2/farcaster/login/nonce/","title":"Fetch nonce","href":"/reference/fetch-nonce"}]},{"group":"Metrics","pages":[{"openapi":"get /v2/farcaster/cast/metrics/","title":"Metrics for casts","href":"/reference/fetch-cast-metrics"}]}]},{"group":"Onchain","pages":[{"openapi":"get /v2/onchain/token/metadata","title":"Get token metadata","href":"/reference/get-token-metadata"},{"openapi":"get /v2/onchain/token/metadata/batch","title":"Batch get token metadata","href":"/reference/batch-get-token-metadata"},{"openapi":"get /v2/onchain/token/balances","title":"Get wallet token balances","href":"/reference/get-wallet-balances"}]},{"group":"Deploy onchain","pages":[{"openapi":"post /v2/fungible/","title":"Deploy fungible","href":"/reference/deploy-fungible"}]},{"group":"Farcaster Hub API","pages":[{"group":"Info","pages":[{"openapi":"get /v1/info","title":"Sync Methods","href":"/reference/lookup-hub-info"}]},{"group":"Casts","pages":[{"openapi":"get /v1/castById","title":"By FID and Hash","href":"/reference/lookup-cast-by-hash-and-fid"},{"openapi":"get /v1/castsByFid","title":"By FID","href":"/reference/fetch-users-casts-1"},{"openapi":"get /v1/castsByMention","title":"Mentioning an FID","href":"/reference/fetch-casts-mentioning-user"},{"openapi":"get /v1/castsByParent","title":"By parent cast","href":"/reference/fetch-casts-by-parent"}]},{"group":"Reactions","pages":[{"openapi":"get /v1/reactionById","title":"By FID or cast","href":"/reference/lookup-reaction-by-id"},{"openapi":"get /v1/reactionsByCast","title":"On cast","href":"/reference/fetch-cast-reactions-1"},{"openapi":"get /v1/reactionsByFid","title":"By FID","href":"/reference/fetch-user-reactions-1"},{"openapi":"get /v1/reactionsByTarget","title":"To a target URL","href":"/reference/fetch-reactions-by-target"}]},{"group":"Links","pages":[{"openapi":"get /v1/linkById","title":"By its FID and target FID","href":"/reference/lookup-user-relation"},{"openapi":"get /v1/linksByFid","title":"From source FID","href":"/reference/fetch-user-following-1"},{"openapi":"get /v1/linksByTargetFid","title":"To target FID","href":"/reference/fetch-user-followers-1"}]},{"group":"UserData","pages":[{"openapi":"get /v1/userDataByFid","title":"Fetch UserData for a FID","href":"/reference/fetch-user-data"}]},{"group":"Fids","pages":[{"openapi":"get /v1/fids","title":"Fetch a list of all the FIDs","href":"/reference/fetch-fids"}]},{"group":"Storage","pages":[{"openapi":"get /v1/storageLimitsByFid","title":"FID's limits","href":"/reference/lookup-user-storage-limit"}]},{"group":"Usernames","pages":[{"openapi":"get /v1/userNameProofsByFid","title":"Proofs provided by an FID","href":"/reference/fetch-username-proofs-by-fid"},{"openapi":"get /v1/userNameProofByName","title":"Proof for a username","href":"/reference/fetch-username-proof-by-name"}]},{"group":"Verifications","pages":[{"openapi":"get /v1/verificationsByFid","title":"Provided by an FID","href":"/reference/fetch-verifications-by-fid"}]},{"group":"OnChainEvents","pages":[{"openapi":"get /v1/onChainIdRegistryEventByAddress","title":"Fetch an on-chain ID Registry Event for a given Address","href":"/reference/lookup-on-chain-id-registry-event-by-address"},{"openapi":"get /v1/onChainEventsByFid","title":"Fetch a list of on-chain events provided by an FID","href":"/reference/fetch-user-on-chain-events"},{"openapi":"get /v1/onChainSignersByFid","title":"Fetch a list of signers provided by an FID","description":"**Note:** one of two different response schemas is returned based on whether the caller provides the `signer` parameter. If included, a single `OnChainEventSigner` message is returned (or a `not_found` error). If omitted, a non-paginated list of `OnChainEventSigner` messages is returned instead.","href":"/reference/fetch-user-on-chain-signers-events"}]},{"group":"Message","pages":[{"openapi":"post /v1/submitMessage","title":"Submit signed message","href":"/reference/publish-message"},{"openapi":"post /v1/validateMessage","title":"Validate signed message","description":"Validate a message on the Farcaster network.","href":"/reference/validate-message"}]},{"group":"HubEvents","pages":[{"openapi":"get /v1/events","title":"Page of events","href":"/reference/fetch-events"},{"openapi":"get /v1/eventById","title":"Event by ID","href":"/reference/lookup-event"}]}]},{"group":"Other SDKs","pages":[{"group":"Rust SDK","pages":[{"title":"Getting Started with Neynar Rust SDK","href":"/reference/getting-started-with-rust-sdk"}]},{"group":"Go SDK","pages":[{"title":"Getting Started with Neynar Go SDK","href":"/reference/getting-started-with-go-sdk"}]}]},{"group":"Github","pages":[{"title":"NodeJS-SDK","url":"https://github.com/neynarxyz/nodejs-sdk","href":"/external-link-1"},{"title":"Frontend React SDK","url":"https://github.com/neynarxyz/react/blob/main/README.md","href":"/external-link-2"},{"title":"OpenAPI Specification","url":"https://github.com/neynarxyz/OAS","href":"/external-link-3"},{"title":"Example Apps","url":"https://github.com/neynarxyz/farcaster-examples","href":"/external-link-4"}]}]},{"tab":"Node.js SDK","pages":[{"title":"Node.js SDK","href":"/nodejs-sdk/overview"}]},{"tab":"Mini Apps","pages":[{"title":"Mini Apps","href":"/miniapps/overview"}]},{"tab":"Learn","pages":[{"title":"Learn","href":"/farcaster/overview"}]},{"tab":"Snapchain","pages":[{"title":"Snapchain","href":"/snapchain/overview"}]},{"tab":"Get Help →","href":"mailto:support@ns.com"}]},"basePath":"","title":"Neynar Documentation","buildId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","deploymentId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Myd8dsju.js","utils-C2HkQgW0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-8rSppmTv.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B6MjiCFm.js","snippetPresets-DwrSAONL.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-1-a5UQKQ.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C541m7wZ.js","shallow-CWELCZ77.js","getApiPlaygroundDisplay-CTo5Zn03.js","CodeSnippet-D--dzvnl.js","CodeSnippets-DM3cXEDh.js","Page-CxAy5y67.js","getPastedJson-C-VECgcL.js","icon-BPq2-Mg3.js","MethodPill-D9J5cUHd.js","DuplicateIcon-BqHaxUnD.js","createIcon-CIbcZHp9.js","DynamicMarkdown-BKiHAm_d.js","SectionHeading-DstQXt3H.js","axios-vUo_bRtp.js","Markdown-CpxgzsKA.js","clsx-C5EfhVm0.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CJ9Oly2E.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Mk6P3qvh.js"]}