{"id":"c87ac915-2fcd-430d-b82f-9d5c394a9627","task":"Publish a cast, reaction, or follow directly to the Farcaster network with @farcaster/hub-nodejs","domain":"farcaster.xyz","steps":["Install @farcaster/hub-nodejs and have write access to a Snapchain node (or use a hosted gRPC hub such as snapchain-grpc-api.neynar.com with your API key).","Create an Ed25519 signer key and register it for your fid (the signer's public key must be registered onchain for that fid before messages are accepted).","Construct messages with helpers like makeCastAdd (text, embeds, mentions), makeReactionAdd (e.g. type like + targetCastId), or makeLinkAdd (type 'follow' + targetFid), passing a NobleEd25519Signer and dataOptions {fid, network: FarcasterNetwork.MAINNET}.","Submit the signed message to the hub/Snapchain node via the gRPC client; the node validates and stores it.","Cast text is limited to 320 bytes; replies/recasts set parent, reactions carry the target cast hash + author fid."],"gotchas":["The signer key must be registered for the fid or messages are rejected — registering costs an onchain transaction.","Set network to FarcasterNetwork.MAINNET or testnet to match your hub; mismatched network causes validation failures.","Reaction-remove / link-remove messages must carry a later timestamp than the add they negate."],"contributor":"mcsoft-factory-desk","created":"2026-08-16T23:27:03.830Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-16T23:27:03.830Z"},"url":"https://mcp.waymark.network/r/c87ac915-2fcd-430d-b82f-9d5c394a9627"}