A Farcaster account is managed and secured onchain using the Farcaster contracts. This section provides a high level overview and avoids some implementation details. For the full picture, see the contracts repository. There are three main contracts deployed on OP Mainnet:
Id Registry - creates new accounts
Storage Registry - rents storage to accounts
Key Registry - adds and removes app keys from accounts
The contracts are deployed at the following addresses:
The IdRegistry lets users register, transfer and recover Farcaster accounts. An account is identified by a unique number (the fid) which is assigned to an Ethereum address on registration. An Ethereum address may only own one account at a time, though it may transfer it freely to other accounts. It may also specify a recovery address which can transfer the account at any time.
The Storage Registry lets accounts rent storage by making a payment in ETH. The storage prices are set by admins in USD and converted to ETH using a Chainlink oracle. The price increases or decreases based on supply and demand.
The Key Registry lets accounts issue keys to apps, so that they can publish messages on their behalf. Keys can be added or removed at any time. To add a key, an account must submit the public key of an EdDSA key pair along with a requestor signature. The requestor can be the account itself or an app that wants to operate on its behalf.
Was this page helpful?
{"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":""},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aebe3fbbaab42e7766182d9","clientVersion":"0.0.4102","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":"custom-rbac-roles","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":"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":"editor-metadata","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}],"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":"farcaster/learn/architecture/contracts","slug":"/farcaster/learn/architecture/contracts","pageMetadata":{"title":"Contracts","description":null,"href":"/farcaster/learn/architecture/contracts"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,OptimizedImage,Table}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`A Farcaster account is managed and secured onchain using the Farcaster contracts. This section provides a high level overview and avoids some implementation details. For the full picture, see the `,_jsx(_components.a,{href:`https://github.com/farcasterxyz/contracts/`,children:`contracts repository`}),`.`]}),`\n`,_jsx(`br`,{}),`\n`,_jsx(_components.p,{children:`There are three main contracts deployed on OP Mainnet:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Id Registry`}),` - creates new accounts`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Storage Registry`}),` - rents storage to accounts`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Key Registry`}),` - adds and removes app keys from accounts`]}),`\n`]}),`\n`,_jsx(`br`,{}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/neynar/GtASQDFnQ57Y0zcm/farcaster/assets/registry-contracts.png?fit=max\u0026auto=format\u0026n=GtASQDFnQ57Y0zcm\u0026q=85\u0026s=8037f1fcafc9f541a4f10ce7bf8ffa09`,alt:`Registry Contracts`,\"data-og-width\":`1808`,width:`1808`,\"data-og-height\":`838`,height:`838`,\"data-path\":`farcaster/assets/registry-contracts.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/neynar/GtASQDFnQ57Y0zcm/farcaster/assets/registry-contracts.png?w=280\u0026fit=max\u0026auto=format\u0026n=GtASQDFnQ57Y0zcm\u0026q=85\u0026s=2298219ab5e33d140bd3ba4537f83e87 280w, https://mintcdn.com/neynar/GtASQDFnQ57Y0zcm/farcaster/assets/registry-contracts.png?w=560\u0026fit=max\u0026auto=format\u0026n=GtASQDFnQ57Y0zcm\u0026q=85\u0026s=97602864505afab7bfa07b50ae6ec06b 560w, https://mintcdn.com/neynar/GtASQDFnQ57Y0zcm/farcaster/assets/registry-contracts.png?w=840\u0026fit=max\u0026auto=format\u0026n=GtASQDFnQ57Y0zcm\u0026q=85\u0026s=3643ea97ba6708d68134411cdbd2630f 840w, https://mintcdn.com/neynar/GtASQDFnQ57Y0zcm/farcaster/assets/registry-contracts.png?w=1100\u0026fit=max\u0026auto=format\u0026n=GtASQDFnQ57Y0zcm\u0026q=85\u0026s=c67f38f20fe13d1619ec282f081045f7 1100w, https://mintcdn.com/neynar/GtASQDFnQ57Y0zcm/farcaster/assets/registry-contracts.png?w=1650\u0026fit=max\u0026auto=format\u0026n=GtASQDFnQ57Y0zcm\u0026q=85\u0026s=57307e7dfe06e394aec778044c8f2811 1650w, https://mintcdn.com/neynar/GtASQDFnQ57Y0zcm/farcaster/assets/registry-contracts.png?w=2500\u0026fit=max\u0026auto=format\u0026n=GtASQDFnQ57Y0zcm\u0026q=85\u0026s=c3ac74a837278ead7fa280e1ebc8d91d 2500w`}),`\n`,_jsx(_components.p,{children:`The contracts are deployed at the following addresses:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Contract`}),_jsx(_components.th,{children:`Address`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`IdRegistry`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.a,{href:`https://optimistic.etherscan.io/address/0x00000000fc6c5f01fc30151999387bb99a9f489b`,children:`0x00000000fc6c5f01fc30151999387bb99a9f489b`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`StorageRegistry`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.a,{href:`https://optimistic.etherscan.io/address/0x00000000fcce7f938e7ae6d3c335bd6a1a7c593d`,children:`0x00000000fcce7f938e7ae6d3c335bd6a1a7c593d`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`KeyRegistry`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.a,{href:`https://optimistic.etherscan.io/address/0x00000000fc1237824fb747abde0ff18990e59b7e`,children:`0x00000000fc1237824fb747abde0ff18990e59b7e`})})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`id-registry`,children:`Id Registry`}),`\n`,_jsx(_components.p,{children:`The IdRegistry lets users register, transfer and recover Farcaster accounts. An account is identified by a unique number (the fid) which is assigned to an Ethereum address on registration. An Ethereum address may only own one account at a time, though it may transfer it freely to other accounts. It may also specify a recovery address which can transfer the account at any time.`}),`\n`,_jsx(Heading,{level:`3`,id:`storage-registry`,children:`Storage Registry`}),`\n`,_jsxs(_components.p,{children:[`The Storage Registry lets accounts rent `,_jsx(_components.a,{href:`/farcaster/learn/what-is-farcaster/messages#storage`,children:`storage`}),` by making a payment in ETH. The storage prices are set by admins in USD and converted to ETH using a Chainlink oracle. The price increases or decreases based on supply and demand.`]}),`\n`,_jsx(Heading,{level:`3`,id:`key-registry`,children:`Key Registry`}),`\n`,_jsx(_components.p,{children:`The Key Registry lets accounts issue keys to apps, so that they can publish messages on their behalf. Keys can be added or removed at any time. To add a key, an account must submit the public key of an EdDSA key pair along with a requestor signature. The requestor can be the account itself or an app that wants to operate on its behalf.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"Contracts","description":null,"href":"/farcaster/learn/architecture/contracts"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Id Registry","slug":"id-registry","depth":3,"children":[]},{"title":"Storage Registry","slug":"storage-registry","depth":3,"children":[]},{"title":"Key Registry","slug":"key-registry","depth":3,"children":[]}],"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"],"subdomain":"neynar","siteName":"Neynar","title":"Neynar Documentation","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-05T02:03:53.659Z","originalFileLocation":"farcaster/learn/architecture/contracts.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=\"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/farcaster/learn/architecture/contracts\">\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=Architecture\u0026amp;title=Contracts\u0026amp;theme=578d2e96050b9a8a112b6d3a\u0026amp;signature=deb531606c07763df2795b15d88a8b70020c7175a4ee8c0705b2880af0a27fc3\">\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=Architecture\u0026amp;title=Contracts\u0026amp;theme=578d2e96050b9a8a112b6d3a\u0026amp;signature=deb531606c07763df2795b15d88a8b70020c7175a4ee8c0705b2880af0a27fc3\">\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/farcaster/learn/architecture/contracts\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/farcaster/learn/architecture/contracts.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/farcaster/learn/architecture/contracts#webpage\",\"url\":\"https://docs.neynar.com/farcaster/learn/architecture/contracts\",\"name\":\"Contracts\",\"dateModified\":\"2026-11-05T02:03:53.659Z\",\"isPartOf\":{\"@id\":\"https://docs.neynar.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.neynar.com/farcaster/learn/architecture/contracts#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.neynar.com/farcaster/learn/architecture/contracts#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Learn\",\"item\":\"https://docs.neynar.com/farcaster/learn\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Architecture\",\"item\":\"https://docs.neynar.com/farcaster/learn/architecture/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Contracts\",\"item\":\"https://docs.neynar.com/farcaster/learn/architecture/contracts\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.neynar.com/farcaster/learn/architecture/contracts#article\",\"headline\":\"Contracts\",\"name\":\"Contracts\",\"url\":\"https://docs.neynar.com/farcaster/learn/architecture/contracts\",\"mainEntityOfPage\":{\"@id\":\"https://docs.neynar.com/farcaster/learn/architecture/contracts#webpage\"},\"dateModified\":\"2026-11-05T02:03:53.659Z\",\"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\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Neynar\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/farcaster/learn/architecture/contracts.md","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","pages":[{"title":"REST API Reference","href":"/reference/quickstart"}]},{"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","groups":[{"group":"Overview","pages":[{"title":"Overview","href":"/farcaster/overview"}]},{"group":"Learn","pages":[{"title":"Getting Started","href":"/farcaster/learn/index"},{"group":"Core Concepts","pages":[{"title":"Accounts","href":"/farcaster/learn/what-is-farcaster/accounts"},{"title":"Usernames","href":"/farcaster/learn/what-is-farcaster/usernames"},{"title":"Messages","href":"/farcaster/learn/what-is-farcaster/messages"},{"title":"Channels","href":"/farcaster/learn/what-is-farcaster/channels"},{"title":"Apps","href":"/farcaster/learn/what-is-farcaster/apps"},{"title":"Mini Apps","href":"/farcaster/learn/what-is-farcaster/mini-apps"}]},{"group":"Architecture","pages":[{"title":"Architecture","sidebarTitle":"Overview","description":null,"href":"/farcaster/learn/architecture/overview"},{"title":"Contracts","href":"/farcaster/learn/architecture/contracts"},{"title":"Snapchain","icon":"arrow-up-right","description":null,"href":"/farcaster/learn/architecture/snapchain-redirect"},{"title":"ENS Names","href":"/farcaster/learn/architecture/ens-names"}]},{"group":"Contributing","pages":[{"title":"Contributing","sidebarTitle":"Overview","href":"/farcaster/learn/contributing/overview"},{"title":"Governance","href":"/farcaster/learn/contributing/governance"},{"title":"FIPs","href":"/farcaster/learn/contributing/fips"}]}]},{"group":"Developers","pages":[{"title":"Getting Started","href":"/farcaster/developers/index"},{"title":"Resources","href":"/farcaster/developers/resources"},{"title":"Mini Apps","icon":"arrow-up-right","href":"/farcaster/developers/miniapps-redirect"},{"group":"Sign In with Farcaster","pages":[{"title":"Sign In with Farcaster","href":"/farcaster/developers/siwf/index"},{"title":"AuthKit","href":"/farcaster/auth-kit/index"}]},{"group":"Farcaster Protocol","pages":[{"group":"Managing Accounts","pages":[{"title":"Create an account","href":"/farcaster/developers/guides/accounts/create-account"},{"title":"Create an account key","href":"/farcaster/developers/guides/accounts/create-account-key"},{"title":"Find account by username","href":"/farcaster/developers/guides/accounts/find-by-name"},{"title":"Change Farcaster name","href":"/farcaster/developers/guides/accounts/change-fname"},{"title":"Register ENS Name","href":"/farcaster/developers/guides/accounts/register-ens"},{"title":"Change custody address","href":"/farcaster/developers/guides/accounts/change-custody"},{"title":"Change recovery address","href":"/farcaster/developers/guides/accounts/change-recovery"}]},{"group":"Querying Data","pages":[{"title":"Get account messages","href":"/farcaster/developers/guides/querying/fetch-casts"},{"title":"Get account profile","href":"/farcaster/developers/guides/querying/fetch-profile"},{"title":"Fetch casts from a channel","href":"/farcaster/developers/guides/querying/fetch-channel-casts"}]},{"group":"Writing Data","pages":[{"title":"Create messages","href":"/farcaster/developers/guides/writing/messages"},{"title":"Create casts","href":"/farcaster/developers/guides/writing/casts"},{"title":"Create an address verification","href":"/farcaster/developers/guides/writing/verify-address"},{"title":"Submit data to the hub","href":"/farcaster/developers/guides/writing/submit-messages"}]},{"group":"Building Apps","pages":[{"title":"Generate a chronological feed for a user","href":"/farcaster/developers/guides/apps/feed"}]},{"group":"Advanced","pages":[{"title":"Counting signups by day","href":"/farcaster/developers/guides/advanced/query-signups"},{"title":"Decode key metadata","href":"/farcaster/developers/guides/advanced/decode-key-metadata"}]}]},{"title":"Hello World","href":"/farcaster/developers/guides/basics/hello-world"}]},{"group":"AuthKit","pages":[{"group":"Overview","pages":[{"title":"AuthKit","href":"/farcaster/auth-kit/index"},{"title":"Examples","href":"/farcaster/auth-kit/examples"}]},{"group":"Quickstart","pages":[{"title":"Installation","href":"/farcaster/auth-kit/installation"},{"title":"`SignInButton`","href":"/farcaster/auth-kit/sign-in-button"},{"title":"`AuthKitProvider`","href":"/farcaster/auth-kit/auth-kit-provider"}]},{"group":"Advanced","pages":[{"title":"Overview","href":"/farcaster/auth-kit/service-providers"},{"group":"Hooks","pages":[{"title":"`useSignIn`","href":"/farcaster/auth-kit/hooks/use-sign-in"},{"title":"`useSignInMessage`","href":"/farcaster/auth-kit/hooks/use-sign-in-message"},{"title":"`useProfile`","href":"/farcaster/auth-kit/hooks/use-profile"}]},{"group":"Auth Client","pages":[{"title":"Auth client","href":"/farcaster/auth-kit/client/introduction"},{"group":"App Actions","pages":[{"title":"App Client","href":"/farcaster/auth-kit/client/app/client"},{"title":"`createChannel`","href":"/farcaster/auth-kit/client/app/create-channel"},{"title":"`status`","href":"/farcaster/auth-kit/client/app/status"},{"title":"`watchStatus`","href":"/farcaster/auth-kit/client/app/watch-status"},{"title":"`verifySignInMessage`","href":"/farcaster/auth-kit/client/app/verify-sign-in-message"}]},{"group":"Wallet Actions","pages":[{"title":"Wallet Client","href":"/farcaster/auth-kit/client/wallet/client"},{"title":"`parseSignInURI`","href":"/farcaster/auth-kit/client/wallet/parse-sign-in-uri"},{"title":"`buildSignInMessage`","href":"/farcaster/auth-kit/client/wallet/build-sign-in-message"},{"title":"`authenticate`","href":"/farcaster/auth-kit/client/wallet/authenticate"}]}]}]}]},{"group":"Reference","pages":[{"title":"Reference","href":"/farcaster/reference/index"},{"title":"Mini Apps Specification","icon":"arrow-up-right","href":"/farcaster/reference/miniapps-redirect"},{"group":"Farcaster Client","pages":[{"title":"Farcaster Client API Reference","href":"/farcaster/reference/farcaster/api"},{"title":"Signer Requests","href":"/farcaster/reference/farcaster/signer-requests"},{"title":"Farcaster Intent URLs","href":"/farcaster/reference/farcaster/intent-urls"},{"title":"Direct Casts","href":"/farcaster/reference/farcaster/direct-casts"},{"title":"Farcaster Client Embeds Reference","href":"/farcaster/reference/farcaster/embeds"},{"title":"Signers","href":"/farcaster/reference/farcaster/signers"}]},{"group":"Snapchain","pages":[{"title":"Snapchain","icon":"arrow-up-right","href":"/farcaster/reference/snapchain-redirect"},{"title":"Replicator Schema","href":"/farcaster/reference/replicator/schema"}]},{"group":"Contracts","pages":[{"title":"Contracts Overview","href":"/farcaster/reference/contracts/index"},{"group":"Contract Reference","pages":[{"title":"ID Gateway","href":"/farcaster/reference/contracts/reference/id-gateway"},{"title":"Id Registry","href":"/farcaster/reference/contracts/reference/id-registry"},{"title":"Key Gateway","href":"/farcaster/reference/contracts/reference/key-gateway"},{"title":"Key Registry","href":"/farcaster/reference/contracts/reference/key-registry"},{"title":"Storage Registry","href":"/farcaster/reference/contracts/reference/storage-registry"},{"title":"Bundler","href":"/farcaster/reference/contracts/reference/bundler"},{"title":"Signed Key Request Validator","href":"/farcaster/reference/contracts/reference/signed-key-request-validator"},{"title":"Tier Registry","href":"/farcaster/reference/contracts/reference/tier-registry"}]},{"title":"Deployments","href":"/farcaster/reference/contracts/deployments"},{"title":"FAQ","href":"/farcaster/reference/contracts/faq"}]},{"group":"FName Server","pages":[{"title":"FName Registry Server API Reference","href":"/farcaster/reference/fname/api"}]}]}]},{"tab":"Snapchain","pages":[{"title":"Snapchain","href":"/snapchain/overview"}]},{"tab":"Get Help →","href":"mailto:support@ns.com"}]},"basePath":"","title":"Neynar Documentation","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-C5F0mVLH.js","lightbox-handle-r17bVUz3.js"]}