FAQ
Signatures
How do I generate an EIP-712 signature?
See the contract reference docs for documentation on each EIP-712 signature, including Typescript code examples.
If you're using Typescript/JS, the @farcaster/hub-web
package includes tools for generating and working with EIP-712 signatures. To ensure you're using the correct addresses and typehashes, we recommend importing the ABIs and EIP-712 types from the contracts module or using the provided Eip712Signer
helper.
See the "Working with EIP-712 signatures" example app in the hub monorepo for a reference that demonstrates each signature and contract call.
How can I debug an invalid EIP-712 signature?
To help debug EIP-712 signing, every contract that uses EIP-712 signatures exposes its domain separator and typehashes as constants along with a hashTypedDataV4 helper view. If you're constructing signatures in Solidity or another low level language, you can use these to help debug.
Reference
Where is the full contract source code?
The contracts repo is on Github here.
Where do I get contract ABIs?
Find contract ABIs and deployment addresses here.
Where can I find audit reports?
Past audit reports are linked from the contracts repo.
Are the Farcaster contracts deployed to a testnet?
No. Consider using network forking to test or develop against the OP mainnet contracts.
Data
How do I find a user’s custody address?
Call the custodyOf
function on the IdRegistry.
How do I find a user’s recovery address?
Call the recoveryOf
function on the IdRegistry.
How do I find an account’s fid?
Call the idOf
function on the IdRegistry.
How do I look up the account keys for my fid?
Call the keysOf
function on the KeyRegistry.
Other
What is an app fid? How do I get one?
What is an FID?
An FID (Farcaster ID) is a unique identifier used to distinguish applications and users. With an FID, apps and users can be identified and differentiated.
Why is an FID necessary?
To create or post anything on the Farcaster platform, an FID is essential for identifying your app or user.
How do I get one?
You can register an app fid directly through the Bundler or IdGateway, or use a Farcaster client to register an account for your app. Since you'll need to sign key request metadata from the wallet that owns your app fid, keep the private key secure.