Back to Blog
farcasterwarpcastcryptoapischeduling

How to Schedule Farcaster Casts: Signers, Neynar, and the 320-Byte Rule

M
Mel Owen
8 min read

Short answer: there is no button anywhere in Warpcast, or anywhere in the Farcaster protocol, that says "schedule this cast." If you want to know how to schedule Farcaster casts, the honest version is that you build the scheduling yourself, on top of a signer and an API, because nothing native does it for you.

Longer answer: that is not actually a bad thing once you understand why. Farcaster is a protocol, not a company with a product roadmap. There is no central server deciding what ships when, which means there is no team that could add a "schedule" feature even if they wanted to. What exists instead is a set of primitives (signers, hubs, and a growing list of API providers) that you can wire into something that behaves like a warpcast post scheduler. This is that wiring, plus the limits that catch people who skip the docs.

What you need

  • A Farcaster account (an FID) with a custody wallet, the thing you set up in Warpcast when you first sign up.
  • A signer, which is a separate keypair your account approves to post on its behalf. More on this below, because it is the part most people get wrong.
  • An API provider. Almost everyone building on Farcaster today uses Neynar, which manages signer infrastructure and exposes a REST API so you are not running your own hub.
  • A place to hold your queued casts and fire them at the right time, since nothing upstream will do that part for you.
  • Patience with byte counting, because Farcaster does not measure your text in characters.

Why bytes, not characters (320-byte casts, emoji math)

Here is the detail that trips up almost everyone coming from X or Threads: a standard Farcaster cast is capped at 320 bytes, not 320 characters, per the protocol documentation at docs.farcaster.xyz.

For plain ASCII text, a byte and a character are the same thing, so 320 bytes reads like 320 characters and nobody notices a difference. The moment you add an emoji, a curly quote, an em dash equivalent, or non-Latin text, the math changes. A single emoji can cost 4 bytes in UTF-8 encoding. Three emoji at the end of a cast can quietly eat 12 of your 320 bytes before you have written a word. Curly quotes and other "smart" punctuation from word processors typically cost 3 bytes each instead of 1.

This means a cast that looks like it fits in a plain character counter can fail to fit once encoded. If you are pasting text from another platform's editor, count bytes, not characters, or you will get a rejected cast with no obvious explanation.

There are figures circulating about longer casts or a "Pro" tier with a higher byte ceiling. Treat those as unverified for now. The 320-byte limit is what is documented and what you should build against until something more official supersedes it.

The signer model: apps never hold your credentials

Unlike API integrations on most platforms, where you generate a token and hand it to a third party, Farcaster's posting model runs through signers. A signer is its own Ed25519 keypair. Your Farcaster account approves that keypair to post casts on your behalf, and you can revoke the approval at any time without touching your main account credentials.

This is the correct answer to "is a farcaster signer safe to hand a scheduling tool." You are never handing over your account's private key or your custody wallet. You are approving a scoped, revocable keypair that can only do what a signer can do: post, react, follow, on your account's behalf. If a tool gets compromised, you revoke that one signer and your account itself was never exposed.

In practice, almost nobody registers and manages raw signers by hand. Providers like Neynar run managed signers: you request one through their API, the user approves it once inside Warpcast (a QR code or deep link), and from then on your integration can post through that approved signer without asking again.

See how TimeToPost can help you implement these strategies.

Posting via Neynar (signer_uuid, POST /v2/farcaster/cast)

Once you have an approved signer, publishing a cast through Neynar is a single call:

POST /v2/farcaster/cast

with a signer_uuid identifying the approved signer and the cast text (plus any embeds) in the body. Neynar handles the hub submission underneath, so you are not talking to Farcaster hubs directly or managing your own node.

That single-call simplicity is exactly why there is no native scheduling anywhere in this stack. The API is a fire-now primitive. Nothing in the request accepts a future timestamp, because Farcaster's protocol has no concept of a scheduled cast waiting to be published. Every "scheduled Farcaster post" you have ever seen came from an external system holding your cast and calling this same endpoint at the right moment, not from anything Farcaster or Neynar delays on your behalf.

A scheduling workflow, since nothing in the stack schedules for you

Because there is no native scheduler in Warpcast and no scheduling parameter in the API, the only way to plan Farcaster casts ahead of time is to hold them somewhere and fire them yourself at the chosen moment. That is the model TimeToPost uses for platforms it treats as a workflow layer rather than a one-click connector: you draft your Farcaster casts on the same calendar as the rest of your content, plan around your best-time data, and keep the byte-accurate copy ready to paste the moment it is due, instead of juggling a separate spreadsheet just for casts.

A workable version of this, whether you build it yourself or lean on a calendar tool, looks like:

  1. Draft the cast text and any embeds in one place, alongside the rest of your week's content.
  2. Byte-check the text before it goes into the queue, not after a rejected API call tells you it was too long.
  3. Hold the queued cast with its intended publish time.
  4. At that time, an always-on process calls the signer-backed API to actually post it.

This is the same "hold and fire" pattern used by scheduling tools on protocols that have no native scheduled-publish field. Farcaster just happens to be an unusually clean example of it, since there is no company in the loop that could add the feature even under pressure.

Limits: embeds, rate tiers, storage

A few numbers worth keeping next to your byte counter:

  • Embeds: a standard cast supports a maximum of 2 embeds, and each embed is capped at 256 bytes. That covers links, images, and quote-casts.
  • Neynar rate limits: Neynar's published tiers run around 600 requests per minute on the free tier and 300 requests per minute on the starter paid tier. Check your account's actual tier before assuming either number applies to you, since provider rate limits change more often than protocol rules do.
  • Protocol storage: Farcaster's storage-rent model effectively caps how many casts an account can push through in a short window, with the commonly cited threshold sitting somewhere above roughly 1,000 casts in 24 hours before storage limits start to bite. This is a protocol-level constraint tied to on-chain storage units, not an API throttle, so no scheduler can talk its way around it.

None of these are the kind of limits a casual poster runs into. They matter if you are running a bot account, a brand presence posting dozens of times a day, or anything automated at volume.

FAQ

Can I post a cast longer than 320 bytes? Not through the standard cast type documented today. Figures about longer casts or a Pro tier with extended limits are circulating, but they are unverified. Build against the documented 320-byte cap until something official changes it.

Is giving a scheduling tool my signer safe? Safer than handing over account credentials, yes. A signer is a separate, revocable keypair your account approves. It is scoped to posting actions and can be revoked at any time without touching your custody wallet or main account key. That is the whole point of the signer model.

Does this work with channels? Yes. Channel casts go through the same cast-creation flow, you just include the channel identifier in the request alongside your text and embeds. The byte limit and embed rules apply the same way whether a cast is going to your main feed or a channel.

What does this cost? Neynar's free tier covers a meaningful chunk of light usage, with paid tiers unlocking higher rate limits like the 300-plus RPM starter tier. Beyond the API provider's pricing, there is no Farcaster protocol fee for posting itself, though storage rent is a separate on-chain cost tied to your account's overall usage.

If you are already scheduling everywhere else, from Instagram to X to Facebook, and want Farcaster on the same calendar instead of a separate spreadsheet of byte-counted drafts, see how TimeToPost's scheduling workflow handles multi-platform planning, and check the best time to post in 2026 before you queue up your next batch of casts.

Related posts

Put these strategies into action

TimeToPost helps you schedule content, track performance, and grow your audience, all in one place.