Neynar Documentation

chain_events

All onchain events received from the hub event stream are stored in this table. These events represent any onchain action including registrations, transfers, signer additions/removals, storage rents, etc. Events are never deleted (i.e. this table is append-only).

Column Name Data Type Description
id uuid Generic identifier specific to this DB (a.k.a. surrogate key)
created_at timestamp with time zone When the row was first created in this DB (not the same as the message timestamp!)
block_timestamp timestamp with time zone Timestamp of the block this event was emitted in UTC.
fid bigint FID of the user that signed the message.
chain_id bigint Chain ID.
block_number bigint Block number of the block this event was emitted.
transaction_index smallint Index of the transaction in the block.
log_index smallint Index of the log event in the block.
type smallint Type of chain event.
block_hash bytea Hash of the block where this event was emitted.
transaction_hash bytea Hash of the transaction triggering this event.
body json JSON representation of the chain event body (changes shape based on type).
raw bytea Raw bytes representing the serialized OnChainEvent protobuf.

fids

Stores all registered FIDs on the Farcaster network.

Column Name Data Type Description
fid bigint FID of the user (primary key)
created_at timestamp with time zone When the row was first created in this DB (not the same as registration date!)
updated_at timestamp with time zone When the row was last updated.
registered_at timestamp with time zone Timestamp of the block in which the user was registered.
chain_event_id uuid ID of the row in the chain_events table corresponding to this FID’s initial registration.
custody_address bytea Address that owns the FID.
recovery_address bytea Address that can initiate a recovery for this FID.

signers

Stores all registered account keys (signers).

Column Name Data Type Description
id uuid Generic identifier specific to this DB (a.k.a. surrogate key)
created_at timestamp with time zone When the row was first created in this DB (not the same as when the key was created on the network!)
updated_at timestamp with time zone When the row was last updated.
added_at timestamp with time zone Timestamp of the block where this signer was added.
removed_at timestamp with time zone Timestamp of the block where this signer was removed.
fid bigint FID of the user that authorized this signer.
requester_fid bigint FID of the user/app that requested this signer.
add_chain_event_id uuid ID of the row in the chain_events table corresponding to the addition of this signer.
remove_chain_event_id uuid ID of the row in the chain_events table corresponding to the removal of this signer.
key_type smallint Type of key.
metadata_type smallint Type of metadata.
key bytea Public key bytes.
metadata bytea Metadata bytes as stored on the blockchain.

username_proofs

Stores all username proofs that have been seen. This includes proofs that are no longer valid, which are soft-deleted via the deleted_at column. When querying usernames, you probably want to query the fnames table directly, rather than this table.

Column Name Data Type Description
id uuid Generic identifier specific to this DB (a.k.a. surrogate key)
created_at timestamp with time zone When the row was first created in this DB (not the same as when the key was created on the network!)
updated_at timestamp with time zone When the row was last updated.
timestamp timestamp with time zone Timestamp of the proof message.
deleted_at timestamp with time zone When this proof was revoked or otherwise invalidated.
fid bigint FID that the username in the proof belongs to.
type smallint Type of proof (either fname or ENS).
username text Username, e.g. dwr if an fname, or dwr.eth if an ENS name.
signature bytea Proof signature.
owner bytea Address of the wallet that owns the ENS name, or the wallet that provided the proof signature.

fnames

Stores all usernames that are currently registered. Note that in the case a username is deregistered, the row is soft-deleted via the deleted_at column until a new username is registered for the given FID.

messages

All Farcaster messages retrieved from the hub are stored in this table. Messages are never deleted, only soft-deleted (i.e. marked as deleted but not actually removed from the DB).

Column Name Data Type Description
id uuid Generic identifier specific to this DB (a.k.a. surrogate key)
created_at timestamp with time zone When the row was first created in this DB (not the same as the message timestamp!)
updated_at timestamp with time zone When the row was last updated.
timestamp timestamp with time zone Message timestamp in UTC.
deleted_at timestamp with time zone When the message was deleted by the hub (e.g. in response to a CastRemove message, etc.)
pruned_at timestamp with time zone When the message was pruned by the hub.
revoked_at timestamp with time zone When the message was revoked by the hub due to revocation of the signer that signed the message.
fid bigint FID of the user that signed the message.
type smallint Message type.
hash_scheme smallint Message hash scheme.
signature_scheme smallint Message signature scheme.
hash bytea Message hash.
signature bytea Message signature.
signer bytea Signer used to sign this message.
body json JSON representation of the body of the message.
raw bytea Raw bytes representing the serialized message protobuf.

casts

Represents a cast authored by a user.

Column Name Data Type Description
id uuid Generic identifier specific to this DB (a.k.a. surrogate key)
created_at timestamp with time zone When the row was first created in this DB (not the same as the message timestamp!)
updated_at timestamp with time zone When the row was last updated.
timestamp timestamp with time zone Message timestamp in UTC.
deleted_at timestamp with time zone When the cast was considered deleted/revoked/pruned by the hub (e.g. in response to a CastRemove message, etc.)
fid bigint FID of the user that signed the message.
parent_fid bigint If this cast was a reply, the FID of the author of the parent cast. null otherwise.
hash bytea Message hash.
root_parent_hash bytea If this cast was a reply, the hash of the original cast in the reply chain. null otherwise.
parent_hash bytea If this cast was a reply, the hash of the parent cast. null otherwise.
root_parent_url text If this cast was a reply, then the URL that the original cast in the reply chain was replying to.
parent_url text If this cast was a reply to a URL (e.g. an NFT, a web URL, etc.), the URL. null otherwise.
text text The raw text of the cast with mentions removed.
embeds json Array of URLs or cast IDs that were embedded with this cast.
mentions json Array of FIDs mentioned in the cast.
mentions_positions json UTF8 byte offsets of the mentioned FIDs in the cast.

reactions

Represents a user reacting (liking or recasting) content.

links

Represents a link between two FIDs (e.g. a follow, subscription, etc.)

Column Name Data Type Description
id uuid Generic identifier specific to this DB (a.k.a. surrogate key)
created_at timestamp with time zone When the row was first created in this DB (not when the link itself was created on the network!)
updated_at timestamp with time zone When the row was last updated
timestamp timestamp with time zone Message timestamp in UTC.
deleted_at timestamp with time zone When the link was considered deleted by the hub (e.g. in response to a LinkRemoveMessage message, etc.)
fid bigint Farcaster ID (the user ID).
target_fid bigint Farcaster ID of the target user.
display_timestamp timestamp with time zone When the row was last updated.
type text Type of connection between users, e.g. follow.
hash bytea Message hash.

verifications

Represents a user verifying something on the network. Currently, the only verification is proving ownership of an Ethereum wallet address.

Column Name Data Type Description
id uuid Generic identifier specific to this DB (a.k.a. surrogate key)
created_at timestamp with time zone When the row was first created in this DB (not the same as the message timestamp!)
updated_at timestamp with time zone When the row was last updated.
timestamp timestamp with time zone Message timestamp in UTC.
deleted_at timestamp with time zone When the verification was considered deleted by the hub (e.g. in response to a VerificationRemove message, etc.)
fid bigint FID of the user that signed the message.
hash bytea Message hash.
signer_address bytea Address of the wallet being verified.
block_hash bytea Block hash of the latest block at the time the ownership was verified.
signature bytea Ownership proof signature.

user_data

Represents data associated with a user (e.g. profile photo, bio, username, etc.)